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

dos zend_navigation navigation

Estas en el tema de dos zend_navigation navigation en el foro de Zend en Foros del Web. nuevamente apoyandome de esta gran comunidad, que me han hecho mas de una enorme favor. tengo ya implementado un menu con navigation y acl, que ...
  #1 (permalink)  
Antiguo 22/11/2010, 16:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 7 meses
Puntos: 4
dos zend_navigation navigation

nuevamente apoyandome de esta gran comunidad, que me han hecho mas de una enorme favor.

tengo ya implementado un menu con navigation y acl, que lo tengo en el layout

pero requiero poner un boton, que solo se muestre en una vista en especifico,
dependiendo tambien de los provilegios.

puedo meter dos navigation??

o algun otra forma de mostrar o no un boton??


los dos view helper terminan asi:
return $this->view->navigation();

y termina mostrandose mi menu 2 veces.

mil gracias
  #2 (permalink)  
Antiguo 22/11/2010, 20:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: dos zend_navigation navigation

Si necesitas solo poner un botón, recuerda que tu puedes hacer querys sobre el navigation usando los métodos findBy y así poder obtener solo un elemento del menu.

Saludos.
  #3 (permalink)  
Antiguo 23/11/2010, 16:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: dos zend_navigation navigation

Que tal GatorV?

aun me falta entende mucho del acl y del navigation
esto es lo que tengo, pero no se como verificar el acl, y aun menos que hacer con ello.

puedo verificar en la vista si lo que me esta regresando es verdadero, y con ello pintar o no el boton??
Código PHP:
class Zend_View_Helper_LoggedInAs extends Zend_View_Helper_Abstract 
{
    public function 
loggedInAs()
    {
    
$this->_acl = new Library_Plugins_Acl();
        
$roleZend_Auth::getInstance()->getIdentity()->role
             
        
$navContainerConfig = new Zend_Config_Xml('Application/Configs/navigation.xml''navl');
        
$navContainer       = new Zend_Navigation($navContainerConfig);
        
$export =$navContainer->findOneByAction('export');

        
#$this->view->navigation($navContainer)
        #
        #                 ->menu()->setUlClass('ui-button ui-widget ui-state-default ui-corner-all dropdown')
        #                ->setAcl($this->_acl)
        #                ->setRole($role);
        #return $this->view->navigation();
        
return $export;
    }

estoy usando como base el viewhelper que muestra mi menu
  #4 (permalink)  
Antiguo 23/11/2010, 16:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: dos zend_navigation navigation

Claro, recuerda que tu siempre puedes hacer un $acl->isAllowed($Role, $Resource, $Privilege) para ver si puede o no puede ver el boton.

Saludos.
  #5 (permalink)  
Antiguo 23/11/2010, 18:30
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: dos zend_navigation navigation

El Zend_Navigation lo tendrias que instanciar en tu Bootstrap(supongo que asi lo tienes), con esto en mente en tu view helper tendrias que hacer algo asi:

Código PHP:
Ver original
  1. public function loggedInAs()
  2. {
  3.     $page = Zend_Controller_Front::getInstance()->getParam('bootstrap')
  4.                                                 ->getResource('navigation')
  5.                                                 ->findOneById('#identifier#');        
  6.     if($page instanceof Zend_Navigation_Page
  7.                                && $this->view->navigation()->accept($page)){
  8.         return $this->view->navigation()->htmlify($page);
  9.     }
  10.     return false;
  11. }

Te recomiendo que le asignes un id a la pagina y que le cambies el nombre al view helper a algo mas acorde con la accion que realiza.

Salu2.
  #6 (permalink)  
Antiguo 25/11/2010, 07:30
 
Fecha de Ingreso: junio-2009
Mensajes: 156
Antigüedad: 14 años, 10 meses
Puntos: 3
Respuesta: dos zend_navigation navigation

Pregunto:
lo mejor en este caso, no es colocar los recursos y privilegios en el navigation.xml ??
Yo lo tengo asi y funciona perfecto, los links del menu se ven si el usuario tiene el privilegio.
Código XML:
Ver original
  1. <logout>
  2. <label>Logout</label>
  3. <title>Salir de la sesion</title>
  4. <module>default</module>
  5. <controller>index</controller>
  6. <action>logout</action>
  7.  <resource>default:index</resource>
  8. <privilege>logout</privilege>
  9. <route>default</route>
  10. </logout>

Saludos.
  #7 (permalink)  
Antiguo 25/11/2010, 14:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 113
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: dos zend_navigation navigation

de hecho asi es como le tengo, pero el punto era que esa accion no es parte del menu, digamos, necesitaba mostra un boton con una accion en especifico.

lo que temine haciendo, aunque seguramente no fue lo mejor, al menos si me sirvio.


hice un findBy al navigation con la accion que quiero en el boton.
si la encuentra la quita, con ello ya no se muestra en mi menu.

y en la vista, $acl->isAllowed($Role, $Resource, $Privilege) en caso de que sea verdadero muestro el boton.

Saludos y gracias por el tiempo

Etiquetas: dos, navigation
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 20:24.