Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-09-2008 17:44:09

thoas
Nouveau membre
Lieu: Paris, France
Date d'inscription: 02-03-2008
Messages: 8

[Résolu][Zend_Controller_Plugin][1.6] Comportement étrange des helpers

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 :

Code:

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 :

Code:

<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

 

#2 16-09-2008 01:07:56

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu][Zend_Controller_Plugin][1.6] Comportement étrange des helpers

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


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 16-09-2008 11:25:51

thoas
Nouveau membre
Lieu: Paris, France
Date d'inscription: 02-03-2008
Messages: 8

Re: [Résolu][Zend_Controller_Plugin][1.6] Comportement étrange des helpers

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages