Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2012, 08:22
Avatar de Garot
Garot
 
Fecha de Ingreso: marzo-2010
Ubicación: Mar de Dirac
Mensajes: 121
Antigüedad: 14 años, 8 meses
Puntos: 7
Duda sobre plantillas en Codeigniter

que tal!

Estoy dando mis primeros pasos en el apasionante mundo de Codeigniter, y tropecé con una duda que no me deja continuar.

Averiguando sobre las buenas prácticas para hacer plantillas en Codeigniter llegue al siguiente código:

Voy a mostrar solo el controlador que es donde surge mi duda:
Código PHP:
function pagina_1($id){

        
$nombre $this->model_categorias->nombre_cat($id);
        
//Acá cargo el método que me devuelve todas las categorias
        
$all_cat['filas'] = $this->model_categorias->obtener_todas();
    

    
$datos_plantilla['encabezado'] = $this->load->view('site/includes/encabezado'$all_cattrue);
    
$datos_plantilla['pie'] = $this->load->view('site/includes/pie'$all_cat true);
        
    
$datos_plantilla['title'] = 'Título de la página';
    
$datos_plantilla['cuerpo'] = 'Contenido del cuerpo';
        
        
        
$this->load->view('site/plantilla'$datos_plantilla);
    } 
Me pareció una manera muy buena y simple de ir cargando las páginas, pero me surge el siguiente planteo: si vemos el ejemplo arriba, tanto en el encabezado y el pie se cargan datos dinámicos de la BD, entonces no me parece muy práctico el código si cada vez que voy a mostrar una página tengo que cargar el Model, llamar al método que devuelve las categorías y luego cargar todo en la plantilla.

Que pasa si quiero agregarle más datos dinámicos al pie o encabezado que provengan de otro Model? tendría que modificar todas los métodos donde cargo páginas? No hay forma de incluir en el método "pagina_1" una llamada a otro método que se encuentre en otro Controlador por ej.? tal vez un método que me pase el encabezado listo con los datos ya cargados? no se si se entiende? :P

Tal vez exista algún recurso que yo no conozco todavía para resolver ese tipo de cosas. Leí algo sobre los Hooks pero no entendí muy bien si era para este tipo de cosas.

Alguien que tenga una visión más amplia del framework podría darme una mano .

Desde ya gracias!