Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je voudrais pouvoir intialiser uen seule fois la view principal avec des aides de vue tels que headTitle, doctype etc.. Et pouvoir ajouter des aides de vue supplémentaire au besoin dans des methodes qui genere du contenu specific a la page actuelle.
Pouvez vous m'expliquer pourquoi le code suivant ne fonctionne pas ? :
L'ordre d'execture est dans l'ordre de presentation, le layout fais le rendu a la fin avec la view par défaut soit la vue init au debut. Sauf que le probleme c'est que l'aide de vue (ici jquery de la class2) soit " $view->JQuery()->addJavascriptFile('Js/genTable.js'); " n'est pas répercuté dans le rendu du layout final. Alors que celui dispose bien de tous les appels comme :
$layout.= $this->JQuery();
$layout.= $this->headScript();
Class1 :
public function initView() { $view = new Zend_View(); $view->setEncoding('UTF-8'); $view->doctype('XHTML1_STRICT'); $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8'); .... ZendX_JQuery::enableView($view); $view->jQuery()->setLocalPath('Js/...js'); $view->jQuery()->setUiLocalPath('Js/....js'); $view->jQuery()->enable(); $view->jQuery()->uiEnable(); // Récupération de l'aide de rendu automatique de vues : viewRenderer | évite le setView sur une balise form $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); // Passage de notre vue à ViewRenderer $viewRenderer->setView($view); } public static function getView() { $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer'); return $viewRenderer->view; }
Class2 (genere du contenu specific):
function method1(){ $view = Prj_Controller_Abstract::getView(); $view->JQuery()->addJavascriptFile('Js/genTable.js'); .... return $html; }
Class1 (pour finir):
$layout = new Zend_Layout(); $layout->setLayoutPath('Layout/'); $layout->content = $html; // return de class2 echo $layout->render();
Je pense que j'ai pas bien compris l'utilisation de Zend_Controller_Action_HelperBroker.
Merci de votre aide.
Hors ligne