Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2011, 08:03
GustavoV
 
Fecha de Ingreso: marzo-2006
Mensajes: 47
Antigüedad: 18 años, 1 mes
Puntos: 0
Deshabilitar render desde un Plugin

Hola.
Tengo un plugin que me carga el layout correspondiente de acuerdo al modulo. Esto funciona muy bien. La cuestión es que tratando de optimizar un poco mas las cosas se me ocurrrió detectar en ese plugin si el request es de ajax o no.... si es de ajax deshabilito el layout y hago que no renderice la vista.

1) Me parece que esta es la forma mas optima de hacerlo pero no estoy seguro. Generalmente lo que he estado haciendo es poniendo en cada controller una comprobación del request y ahi ver si deshabilito o no, pero me parece que no es una solución muy optima que digamos.... Lo venia haciendo así, en cada controller:
Código PHP:
public function init(){
        if(
$this->getRequest()->isXmlHttpRequest()){
            
$this->_helper->getHelper('layout')->disableLayout();
            
$this->_helper->viewRenderer->setNoRender();
        }
    } 
2) He intentado que no renderice la vista desde el plugin pero no puedo. Me sigue tirando el error de que esta buscando la vista (archivo.phtml) correspondiente al action que se llamó. Este es el último código que probé en el plugin:
Código PHP:
public function preDispatch(Zend_Controller_Request_Abstract $request) {
        if(
$request->isXmlHttpRequest()){
            
Zend_Layout::getMvcInstance()->disableLayout();
            
$viewRenderer Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
            
$viewRenderer->setNoRender();
        }else{
            
// el código para ver que layout tiene que cargar
        
}

Muchas gracias por cualquier ayuda que puedan darme