Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2010, 03:21
wigglyUtrera
 
Fecha de Ingreso: enero-2007
Mensajes: 405
Antigüedad: 17 años, 10 meses
Puntos: 3
Usar plugin en layout Zend Framework

Hola, quiero añadir en el layout una vista de un controlador, pero no consigo hacerlo:

He creado el Plugin:

Código PHP:
<?php
require_once 'Zend/Controller/Plugin/Abstract.php';

class 
LoginPlugin extends Zend_Controller_Plugin_Abstract {
    protected 
$_stack;

    public function 
dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
    {
        
$stack $this->getStack();
        
$menuRequest = new Zend_Controller_Request_Simple();
        
$menuRequest->setControllerName('login')
            ->
setActionName('index');
        
$stack->pushStack($menuRequest);
    }

    public function 
getStack()
    {
        if (
null === $this->_stack) {
            
$front Zend_Controller_Front::getInstance();
            if (!
$front->hasPlugin('Zend_Controller_Plugin_ActionStack')) {
                
$stack = new Zend_Controller_Plugin_ActionStack();
                
$front->registerPlugin($stack);
            } else {
                
$stack $front->getPlugin('ActionStack');
            }
        
$this->_stack $stack;
        }
        return 
$this->_stack;
    }
}
pero me sale una excepcion:

Cita:
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (login)'
El Plugin lo he guardado en la misma carpeta que el controlador LoginController.php

Posteriormente lo he registrado:

Código PHP:
$frontController Zend_Controller_Front::getInstance();
        
$frontController->addModuleDirectory(self::getBaseDir() . '/application/modules')
            ->
registerPlugin(new LoginPlugin())
            ->
throwExceptions(true)
            ->
dispatch(); 
En el layout no se que poner para que funcione, aunque primero tengo que arreglar el problema de la excepcion anterior. He probado poniendo la ruta absoluta, pero sigue igual.

Gracias

Un saludo