tutorial instalar español ejemplos php codeigniter

php - instalar - codeigniter vs laravel



La mejor forma de implementar menús/encabezados/pie de página mediante codeignitor (1)

Me preguntaba cuál era la mejor forma / práctica para implementar menús, encabezados y pies de página con el cambio de contenido, como las notificaciones que usan codeignitor.

Por ejemplo, decir que tenía una alerta dentro del menú del encabezado que vinculaba a los datos dentro de una base de datos y que necesitaba verificar los cambios cada vez que se carga una página. Inicialmente pensé que podía llamar al encabezado usando $ this-> load-> view (''header'') cada vez, pero esto significaría que necesitaría una función global para resolver cualquier cambio en las alertas y luego pasar eso a la vista de encabezado , cada vez, no es bueno!

Supongo que necesito una forma global de llamar a la función que carga el encabezado del sitio web (menú) desde cualquier controlador que resuelva el contenido y muestre la vista en consecuencia.


por ejemplo, un controlador que muestra páginas de blog.
en su constructor de controlador: defina la carpeta en la que se encuentran sus archivos de vista de blog y el nombre de la plantilla

// the folder your content files are in $this->templatefolder = ''blog'' ; // the template name $this->view_template = ''blog_template'' ;

en un método cuando esté listo para llamar a algunas vistas

$data[''content01''] = ''search_articles''; $data[''content02''] = ''main_article''; $data[''content03''] = ''suggested_articles''; $this->load->view( $this->view_template, $data );

la plantilla misma ve / blog_template.php

// opening html etc that is generic to website $this->load->view(''tmpl_open''); // so if the header has to be dynamic // get the header from a model (or library etc) // and either pass the header content or just echo it out directly $this->load->model(''header''); if( ! $newHeader = $this->header->returnNewHeader() ) { // fallback if the header doesn''t come back from the model $this->load->view(''default_header''); } else { echo $newHeader ; } // this is optional but IF the template folder is not set // we have a default folder called ''pages'' to look in for the content views // but in this example the folder is set to be ''blog'' // so the blog view files will be in application/views/blog/search_articles.php etc etc if( isset($this->templatefolder)){ $templatefolder = $this->templatefolder . ''/'' ; } else { $templatefolder = ''pages/''; } // header that is specific for the content $this->load->view($templatefolder . ''header''); // so in this specific example its going to load 3 view files, but this part is completely flexible if(isset($content01)) $this->load->view($templatefolder.$content01); if(isset($content02)) $this->load->view($templatefolder.$content02); if(isset($content03)) $this->load->view($templatefolder.$content03); if(isset($content04)) $this->load->view($templatefolder.$content04); if(isset($content05)) $this->load->view($templatefolder.$content05); if(isset($content06)) $this->load->view($templatefolder.$content06); if(isset($content07)) $this->load->view($templatefolder.$content07); if(isset($content08)) $this->load->view($templatefolder.$content08); // example of an optional file that you can uncomment for testing // $this->load->view(''objecttesting''); // bottom nav bar generic to website $this->load->view(''tmpl_footer''); // closing html etc generic to website $this->load->view(''tmpl_close'');