Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'essaye de combiner dans un layout plusieurs vues représentant sous des formes différentes la même donnée. Fondamentalement, mon problème consiste à réaliser l'opération suivante :
layout.phtml
<?php echo $this->layout()->nav; echo $this->layout()->content;
/my/content.phtml
<p>hello <?=$this->user['username'];?></p>
/my/nav.phtml
<img src="<?=$this->user['avatar'];?>" alt="<?=$this->user['username'];?>" />
Si j'ai bien compris, chaque élément de vue devrait correspondre à une action (ici contentAction et navAction de MyController). J'empile mes actions sur le helper ActionStack, et les vues élémentaires sont combinées dans le Layout.
Or les différentes vues doivent exploiter la même donnée. Il me semble que je devrais alors utiliser un placeholder pour stocker la donnée. Mais à quel moment (dans quelle action ?) ce placeholder doit-il être renseigné ?
De plus, est-il correct de charger l'ActionStack dans l'init du controller ? Ce type d'affichage n'est réalisé que pour une portion du site.
Merci pour vos éclaircissements,
elvex
Dernière modification par elvex (07-07-2008 11:50:41)
Hors ligne
Concernant l'actionstack : je rapelle qu'il existe un helper de vue nommé 'action' qui, dans bien des cas est plus facile à utiliser que l'actionStack
Dans ta vue il te suffit de faire :
echo $this->action('action', 'controller', 'module');
Concernant l'exploitation de même données, il y at plusieurs pistes à exploiter
- les params qu'on trouve dans plusieurs fonctions, par exemple : $this->action('action', 'controller', 'module', array('user' => $this-(>user)); et puis getParams pour les récupérer
- le registry
Dernière modification par nORKy (07-07-2008 14:23:09)
Hors ligne
Pages: 1