Duda con template

edited junio 2008 in Principiantes
Hola tengo un layout:

admin.phtml
<?= stylesheet_link_tag("azul/administrador") ?>
<?= javascript_include_tag("funciones") ?>
<div id="contenedor">
   
   <?= render_partial("header") ?>
   
   <?= render_partial("menu") ?>
   
   <div id="contenido">
      <div class="titulo"><span><?= $titulo; ?></span></div>
      <div id="updated-content">
         <? content() ?>
      </div>
   </div>

</div>


pero _header y _menu se encuentran en la carpeta views del controlador 'admin'

Entonces si quiero usar este template para otro controlador, tendria que copiar esos dos archivos en la carpeta views del nuevo controlador, con lo que estaria repitiendo codigo.

Como lo hago para poner header y menu en la carpeta layout y llamarlo desde el layout admin.phtml

Gracias

Un saludo

Comentarios

  • Hola tengo dos opciones la que yo utilizo y una opcional...

    1-> si tu header nunca cambia lo puedes incluir directamente en el index.phtml del directorio view sin ningun problema y tu menu lo colocas en layout y lo incluyes en cualquiera de tu controlador utilizando la variable public $template = "menu"; asi no tendras que hacer uso del render_partial porq simplemente son layout que tu en cualquier punto de ejecución de la aplicación lo puedes incluir como un template

    2-> Si tu header va a cambiar en determinado momento lo ideal seria que hagas el header con el menu y los incluyas como un template asi puedes resolver este inconveniente...

    Saludos...
  • edited 7:36
    Pero es que el template es el que puesto antes: admin.phtml

    No hay forma que, desde el layout se llame a otro layout ???


    Gracias
  • Entiendo lo que decís, me ha pasado y tuve que repetir el código, es decir copiar _menu.phtml y otros, en cada carpeta de la view.

    Pero puedes hacer si es que se puede en tu caso, de copiar el _menu.phtml y _header.phtml en el layout, y en las paginas que sean _menu.phtml y _header.phtml diferentes utilizar: public $template = "admin_1.phtml", public $template = "admin_2.phtml" etc, en el controlador.
  • * Renderiza una vista parcial
    *
    * @param string $partial vista a renderizar
    *
    * partial_view: vista a renderizar (ruta cruda de ubicacion en views)
    * controller: controlador al que pertenece (por defecto se toma el actual)
    * module: controlador al que pertenece (por defecto se toma el actual si existe)
Sign In or Register to comment.