Foros del Web » Programando para Internet » PHP » Zend »

Menu lateral en zend framewrok

Estas en el tema de Menu lateral en zend framewrok en el foro de Zend en Foros del Web. Hola amigos. Estoy haciendo una aplicacion que consta de 3 modulos en ZF. En toda la aplicacion tendra un mismo menu lateral. Que opcion es ...
  #1 (permalink)  
Antiguo 05/08/2009, 21:17
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 9
Menu lateral en zend framewrok

Hola amigos.
Estoy haciendo una aplicacion que consta de 3 modulos en ZF.
En toda la aplicacion tendra un mismo menu lateral.
Que opcion es mejor (o la correcta).
Crear en el directorio layout el archivo 'menulateral.phtml' y en cada layout, mostrarlo con un partial
Código PHP:
<div>
echo 
$this->partial('menulateral.phtml');
</
div
O cargar el archivo en la vista (puede ser en el bootstrap).
Código PHP:
//en el bootstrap
$this->view->assign('MENU_LATERAL','menulateral.phtml');

//en el layout
echo $this->partial($this->MENU_LATERAL); 
Esto ultimo se puede hacer?
Cual de las opciones es mejor para mostrar un menu en toda la aplicacion?
Saludos.
  #2 (permalink)  
Antiguo 05/08/2009, 21:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Menu lateral en zend framewrok

Depende, si el menu es fijo y no depende de variables que tengas que procesar, sí, lo mejor es asignarlo en el Bootstrap por ejemplo.

Si tu menu es dinamico, es conveniente que tenga su propio controller y hagas un plugin para administrarlo.

Saludos.
  #3 (permalink)  
Antiguo 05/08/2009, 23:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 166
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Menu lateral en zend framewrok

GatorV puedes explicar eso último un poco mejor.

"Si tu menu es dinamico, es conveniente que tenga su propio controller y hagas un plugin para administrarlo."

Saludos.
  #4 (permalink)  
Antiguo 06/08/2009, 07:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Menu lateral en zend framewrok

Si las opciones del menu van a cambiar dependiendo de algún rol o alguna interacción especial es conveniente que tengan su propio controller y que ahí gestiones como dibujarlo.

Luego para insertarlo en todas las paginas web se usa el plugin ActionStack para hacer que el request siempre pase por el Menu.

Saludos.
  #5 (permalink)  
Antiguo 07/08/2009, 17:07
 
Fecha de Ingreso: diciembre-2007
Mensajes: 178
Antigüedad: 16 años, 10 meses
Puntos: 1
Respuesta: Menu lateral en zend framewrok

Tambien en estos casos, creo que se podría utilizar el ResponseSegment.
Este es un ejemplo que tengo en un sitio, si bien no es un menu como el de la pregunta, creo que a modo de ejemplo está bastante claro. Como ven es para saber si un usuario está logueado.

en el controller:
Código PHP:
$auth Zend_Auth::getInstance();   
           if(
$auth->hasIdentity())   
               
$menu[] = array('title'=>'Log out','url'=>$this->view->url(array('controller'=>'auth','action'=>'logout')),null,true);   
           else  
               
$menu[] = array('title'=>'Log In','url'=>$this->view->url(array('controller'=>'auth','action'=>'identify')),null,true);   
            
          
$this->view->menu $menu;   
          
$this->_helper->viewRenderer->setResponseSegment('menu');   
       } 

en el layout:
Código PHP:
 $this->layout()->menu
  #6 (permalink)  
Antiguo 10/08/2009, 20:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 9
Respuesta: Menu lateral en zend framewrok

Hola a todos, buscando encontré esta solucion que es bastante sencilla para hacer un sidebar dinamico.

en el template:
Código PHP:
//$data is dynamic data you want to pass to the sidebar
echo $this -> partial('/path/to/sidebar.phtml',array('menuitems' => $data)); 
en sidebar.phtml:
Código PHP:
<div id="sidebar">
<?php foreach($this -> menuitems as $item) : ?>    
<a href="<?php echo $item['url']; ?>"><?php echo $item['title']; ?></a>    
<?php endforeach; ?></div>
Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.