Je semble avoir un problème avec ma mise en page affichant deux fois. Je me demandais si cela était causé par quelque chose dans mon plugin de contrôleur frontal (voir ci-dessous) qui utilise Zend Layout uniquement pour un module particulier et pas dans l'application principale. Toutes les réponses seront très appréciées. MerciMise en page en cours de rendu deux fois
class My_Controller_Plugin_AdoptLayout extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$moduleName = $request->getModuleName();
if ($moduleName == 'some-module') {
if (!Zend_Layout::isEnabled()) {
$view = new Zend_View(array('encoding' => 'UTF-8'));
$view->addScriptPath(ROOT_DIR . '/modules/some-module/views/scripts/');
$view->doctype('XHTML1_STRICT');
$viewRenderer = new Zend_Controller_Action_Helper_ViewRenderer($view);
Zend_Controller_Action_HelperBroker::addHelper($viewRenderer);
Zend_Layout::startMvc();
$layout = Zend_Layout::getMvcInstance();
$layout->setLayout('default');
$layout->setLayoutPath(APPLICATION_PATH . '/modules/some-module/views/scripts/layouts/');
$layout->setView($view);
}
}
}
}
Merci andho. Je me demandais si cela pourrait être vrai, mais j'ai vraiment besoin de l'utiliser car je dois passer des valeurs de formulaire entre les actions et ne semble pas pouvoir le faire fonctionner avec $ this -> _ helper-> redirecteur. J'ai dû créer un nouvel objet de vue car l'application principale utilise un hybride Zend_View/Smarty et je ne veux pas changer tous mes modèles car ils sont de purs Zend_View. – somekindofusernamegoeshere
Pourquoi auriez-vous besoin de transmettre des données de formulaire à une autre action? Est l'action dans le même contrôleur. Si oui, vous ne pouvez pas appeler $ this-> otherAction(); Ou utilisez le chaînage d'action, mais cela peut potentiellement afficher une autre vue à moins que vous ne désactiviez le rendu pour l'une des actions – andho