lunes, 25 de junio de 2012

CSS Diferentes en LAYOUT - MODULAR

Cuando se cuenta con una estructura modular todos los Bootstrap de la aplicación  son ejecutados en el proceso de inicialización, así  el módulo no sea solicitado. De esta forma no se podría hacer independencia para vincular de forma exclusiva CSS o JS o el nombre de cada módulo. la solución a este inconveniente lo puede realizar un Plugin.



class Plugins_Layouts extends Zend_Controller_Plugin_Abstract

 private $_nombreModulo;
 public function preDispatch(Zend_Controller_Request_Abstract $request) 
 { 
    //Obtener view de esta forma porque se encuentra definida en
    //resources.view[] dentro de application.ini 
    $view = Zend_Controller_Front::getInstance()        ->getParam('bootstrap')        ->getResource('view');
    $this->_nombreModulo = $request->getModuleName(); 
    $layout = Zend_Layout::getMvcInstance();
    switch ($this->_nombreModulo)
 { 
   case 'admin':                $layout->setLayout('admin'); 
   $view->headLink()->appendStylesheet($view->baseUrl("css/menuAdmin.css"));
   $view->headLink()->appendStylesheet($view->baseUrl("css/templateAdmin.css"));
   $view->headScript()->appendFile($view->baseUrl("js/menuAdmin.js"));
   $view->headTitle('Zona de Administración','APPEND');
   break; 
   case 'biblioteca':                $layout->setLayout('biblioteca');
   break; 
   default:                $layout->setLayout('default');
               $view->headLink()->appendStylesheet($view->baseUrl("css/menuDefault.css"));
               $view->headLink()->appendStylesheet($view->baseUrl("css/templateDefault.css"));  
               $view->headScript()->appendFile($view->baseUrl("js/menuDefault.js")); 
               $view->headTitle('Default','APPEND');
               break;
 } } }

No hay comentarios:

Publicar un comentario

Gracias por sus comentarios!