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();
}
}
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
}
}