si tengo otro dos plugins, uno para los acl y otro para asignar layout por modulo automaticamente. te lo subo los dos pluguins que tengo.
par los acl:
Código PHP:
class Plugin_VerificarAcceso extends Zend_Controller_Plugin_Abstract{
private $_acl = null;
public function __construct(Zend_Acl $acl) {
$this->_acl = $acl;
}
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$module = strtoupper($request->getModuleName());
$controller = strtoupper($request->getControllerName());
$action = strtoupper($request->getActionName());
$resource=$module.':'.$controller;
// Zend_Debug::dump(Zend_Auth::getInstance()->getStorage()->read());
if (Zend_Auth::getInstance()->hasIdentity()) {
$cod = Zend_Auth::getInstance()->getStorage()->read()->COD_TIPOEMPLEADO;
$model_tipo_empleado = new administrador_Model_DbTable_Tipoempleado();
$tipo_emp = $model_tipo_empleado->getTipoEmpleado($cod);
$rol = $tipo_emp[NOM_TIPO_EMP];
} else {
$rol='default';
}
//Zend_Debug::dump($this->_acl->isAllowed($rol, $resource, $action));
if(!$this->_acl->has($resource) || !$this->_acl->isAllowed($rol, $resource, $action)){
$request->setModuleName('default');
$request->setControllerName('Autentificacion');
$request->setActionName('login');
}
}
}
para los layouts por modulo:
Código PHP:
<?php
class Plugin_VariosLayout extends Zend_Controller_plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
$config = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getOptions();
$moduleName = $request->getModuleName();
if (isset($config[$moduleName]['resources']['layout']['layout'])) {
$layoutScript = $config[$moduleName]['resources']['layout']['layout'];
Zend_Layout::getMvcInstance()->setLayout($layoutScript);
//print_r($layoutScript);
}
if (isset($config[$moduleName]['resources']['layout']['layoutPath'])) {
$layoutPath = $config[$moduleName]['resources']['layout']['layoutPath'];
$moduleDir = Zend_Controller_Front::getInstance()->getModuleDirectory();
Zend_Layout::getMvcInstance()->setLayoutPath($layoutPath);
}
}
}
esos son los dos pluguins mas que tengo, por favor revisamelo donde se esta pisando, gracias