Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
hello,
J'utilise un plugin pour définir tout ce qui se trouve dans mon entête de page à savoir :
- doctype
- meta
- title
- script
- css
En ce qui concerne le doctype, les scripts et les feuilles de styles aucun problème. Cependant les autres helpers (Zend_View_Helper_HeadMeta & Zend_View_Helper_HeadTitle) posent des problèmes de doublons lorsque je renvoie une action vers une autre action (forward).
Petit exemple, ceci :
class Plugin_Header extends Zend_Controller_Plugin_Abstract { public function preDispatch(Zend_Controller_Request_Abstract $request){ $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer'); $viewRenderer->initView(); $viewRenderer->view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=utf-8'); $viewRenderer->view->headTitle('test'); $viewRenderer->view->headLink()->headLink(array('rel' => 'favicon', 'href' => '/img/favicon.ico'), 'PREPEND'); } }
va renvoyer après un forward :
<title>testtest</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="/img/favicon.ico" rel="favicon" /> <link href="/img/favicon.ico" rel="favicon" />
A noter que lorsqu'il n'y a pas de forward(), tout se passe correctement mais à croire que les deux aides de vue cités plus haut ajoutent du contenu et ne le remplace pas.
J'imagine que lorsque l'on fait plusieurs forward() successif, les données s'accumulent car on repasse à chaque fois dans le Plugin.
Dernière modification par thoas (16-09-2008 11:26:08)
Hors ligne
Quand tu fais un forward, tu réappelles la méthode preDispatch de ton plugin.
Si tu veux que ça ne soit pas réappelé sur un forward, il faut utiliser dispatchLoopStartup.
Tu peux voir le détail sur le schéma suivant :
http://www.kitpages.fr/cms/site/tutoria … lobale.jpg
L'article complet est à l'adresse : http://www.kitpages.fr/zf_helper_plugin.php
A+, Philippe
Hors ligne
Merci pour le diagramme de séquence (j'en cherchais un justement), effectivement avec dispatchLoopStartup on repasse qu'une seule fois dans la méthode.
Hors ligne
Pages: 1