Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 15:16
krikis
 
Fecha de Ingreso: diciembre-2010
Mensajes: 13
Antigüedad: 13 años, 4 meses
Puntos: 0
Problema con zend_navigation - layout - view helper

Antes que nada agradezco a quien este leyendo este msj y pueda ayudarme

Estoy aprendiendo zend y me tope con un problema que luego de buscar y buscar no logre resolver.


Bootstrap:

Código PHP:
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{

     protected function 
_initAutoload() 
      {
      
//Registro el plugin que verifica si el usuario esta logeado
      
$fc Zend_Controller_Front::getInstance();
      
$fc->registerPlugin(Plugin_CheckAccess::getInstance()); 

    }

 protected function 
_initNavigation()
    {
        
$this->bootstrap('layout');
                
$config $this->getOptions();
                
$layout $this->getResource('layout');
        
$view $layout->getView();

        
$confignav = new Zend_Config_Xml(APPLICATION_PATH '/configs/navegacion.xml''nav');

        
$container = new Zend_Navigation($confignav);


        
$view->navigation($container);
    }


protected function 
_initDoctype()
    {
   
        
$this->bootstrap('view');
        
$view $this->getResource('view');
         
$view->doctype('XHTML1_TRANSITIONAL');
        
$view->addHelperPath(APPLICATION_PATH '/views/helpers''My_View_Helper');
   

    }




Layout

Código PHP:
<?php echo $this->render('header.phtml'?>
<?php 
echo $this->navigation()->menu(); ?>
<?php 
echo $this->layout()->content?>
El menu de esta manera funciona ok.


Antes de agregar el menu, tenia un view helper que me mostraba cierta info dependiendo si el usuario esta o no logueado.

Este helper esta en

application
-->views
--> helpers
-->Login.php

Desde el layout lo llamaba de la siguiente manera

Código PHP:
<?php echo $this->Login(); ?>
Funcionaba perfecto!

Ahora cuando agregue el nav que les mostre al principio me sale el siguiente error:


Fatal error: Uncaught exception 'Zend_Loader_PluginLoader_Exception' with message 'Plugin by name 'Login' was not found in the registry; used paths: Zend_View_Helper_: Zend/View/Helper/:./views/helpers/' in /home/calidad/www/proyecto/library/Zend/Loader/PluginLoader.php:412 Stack trace: #0 /home/calidad/www/proyecto/library/Zend/View/Abstract.php(1174): Zend_Loader_PluginLoader->load('Login') #1 /home/calidad/www/proyecto/library/Zend/View/Abstract.php(610): Zend_View_Abstract->_getPlugin('helper', 'Login') #2 /home/calidad/www/proyecto/library/Zend/View/Abstract.php(336): Zend_View_Abstract->getHelper('Login') #3 [internal function]: Zend_View_Abstract->__call('Login', Array) #4 /home/calidad/www/proyecto/application/layouts/scripts/layout.phtml(27): Zend_View->Login() #5 /home/calidad/www/proyecto/library/Zend/View.php(108): include('/home/calidad/w...') #6 /home/calidad/www/proyecto/library/Zend/View/Abstract.php(880): Zend_View->_run('/home/calidad/w...') #7 /home/calidad/www/proyecto/library/Zend/Layout.php(796): Zen in /home/calidad/www/proyecto/library/Zend/Loader/PluginLoader.php on line 412


Ahora si en el bootstrap comento la siguiente linea el error no aparece

Código PHP:
$view $layout->getView(); 
o si en el layout saco la siguiente linea me funciona el menu, pero me quedo sin la función que necesito de ese helper

Código PHP:
<?php echo $this->Login(); ?>

Es decir o me funciona una cosa o me funciona la otra


En el application.ini tambien probe agregar el path a los view helper de la siguiente manera:

resources.view.helperPath.My_View_Helper = APPLICATION_PATH "/views/helpers"



Espero pueda ayudarme!

Desde ya muchas gracias

Cristian