Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-02-2009 16:54:47

nuranto
Membre
Date d'inscription: 20-01-2009
Messages: 24

[ZF 1.7][View Helper Action & Plugin]

Bonjour,

Voila mon problème.

J'utilise :

Code:

  $this->action($action, $controller, $module = null, array $params = array())

exemple :

Code:

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
[...]    
</head>
<body>

<?php echo $this->flashMessenger(); ?>

<?php echo $this->action('header', 'index', 'admin'); ?>

<div class="middle">
    <?php echo $this->layout()->content ?>
</div>

<?php echo $this->action('footer', 'index', 'admin'); ?>
</body>
</html>

Ce qui marche bien.

Mais je suis en train de créer une fonctionnalité de plus, et pour cela j'ai besoin de récupérer les actions appelés lors du dispatch.
J'ai donc créer un plugin, mais je n'arrive à récupérer que l'action principale. Je n'arrive pas à mettre la main sur mes actions appelé par mon helper de vue 'action'.

Exemple :
Je vais sur monsite.com/admin/index/index :
J'aimerais pouvoir récuperer :
admin - index - index
admin - index - header
admin - index - footer

Mon probleme est que je ne recupere que :
admin - index - index

Mon plugin :

Code:

<?php

class MaBoite_Controller_Plugin_Monplugin extends Zend_Controller_Plugin_Abstract
{    
    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        Zend_Registry::get('logger')->debug("ICI:".$request->getActionName()); // je ne récupere que index - index
    }    
}

Alors je ne suis pas encore bien en harmonie avec le systeme ZF, mais il me semble que je devrais récuperer aussi mon header et footer, puisque dans Zend_View_Helper_Action::action() il y a bien un :

Code:

$this->dispatcher->dispatch($this->request, $this->response);

Ou est mon erreur ? Comment puis-je faire ? (Puis-je le faire ?)

Hors ligne

 

#2 26-02-2009 18:10:11

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [ZF 1.7][View Helper Action & Plugin]

$request représente la requête demandé, si tu veux obtenir la pile d'action tu dois t'adresser au Zend_Controller_Plugin_ActionStack.
Par contre, comme le layout effectue le rendu en postDispatch, tu dois soit ajouter ton plugin après celui du layout et en postDispatch() ou simplement en dispatchLoopShutDown(), car sinon t'es action ne sont tout simplement pas ajoutées dans la pile.

http://www.kitpages.fr/cms/site/tutoria … lobale.jpg

Dernière modification par 3uclide (26-02-2009 18:10:59)

Hors ligne

 

#3 27-02-2009 17:25:22

nuranto
Membre
Date d'inscription: 20-01-2009
Messages: 24

Re: [ZF 1.7][View Helper Action & Plugin]

Exact, c'est ennuyant, j'en ai besoin avant le dispatch pour bien...

Pour etre plus clair, voici ce que je veux faire :

Ca concerne Zend_Translate. J'aimerais avoir un fichier de traduction par action (par souci de perf mais surtout pour permettre une traduction plus souple : j'aimerais que la traduction d'une meme clé ne soit pas forcement la meme d'une page a une autre...)

Du coup ce que je voulais, c'est charger le fichier de traduction qui correspond a l'action appelé (ainsi que de gerer les traductions directement en back office, mais ca c'est autre chose). Bref, je suis sur un os la...

Hors ligne

 

#4 27-02-2009 19:08:20

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [ZF 1.7][View Helper Action & Plugin]

Tu peux faire cela dans la méthode init() du contrôleur puisqu'à la construction du contrôle l'objet requête est passée ou même un aide d'action en preDispatch()

Dernière modification par 3uclide (27-02-2009 19:09:31)

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