Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
hello,
je rencontre des difficultés de compréhension et je pense que ceux qui connaissent le framework pourront me répondre assez facilement.
Voila mon soucis:
j'utilise Zend Layout pour définir mon template.
Dans le rendu courant je fais appel à une action stack.
Mais dès lors que je lui fais un appel mon display n'affiche plus le mécanisme de template.
voila mon code du controller
public function indexAction() { // Un peu de logique pas bien méchante //$this->_helper->actionStack("bestSite", "bloc", null); }
Dans ce déroulement pas de pb, j'ai bien mon contenu courant qui est affiché à l'endroit spécifié dans le template.
Mais si je décommente la ligne de l'action stack, le rendu n 'est plus du tout le même.
Je n'ai plus le contexte du template par contre j'ai bien la vue courante + la vue de l'action bestSite du controlleur bloc afficher l'un après l'autre.
Donc comment rester dans le contexte courant, afin d'ajouter différent éléments de bloc à mon render courant ?
Ou est ce qu'actionStack n'est pas dédié à cela ? (Perso j'ai lu la doc mais ce n'est pas clair pour moi)
D'avance merci
PS: j'essaye de widgetiser au mieux mes blocs afin de pouvoir simplement les réutiliser dans les autres pages.
Dernière modification par bucheron (12-06-2008 15:22:31)
Hors ligne
Perso pour utiliser l'action stack je procède ainsi
$actionStack = Zend_Controller_Action_HelperBroker::getStaticHelper('actionStack'); $actionStack->actionToStack($options['action'], $options['controller'], $options['module'], $options['params']);
Pour le coup du segment de réponse en fait à la fin de l'action je fais
$this->render('template', 'nomSegment');
Hors ligne
euhhh je capte pas trop ou peut etre j'ai pas assez donné de détail.
Voila l'extrait de mon bootstrap qui instancie le zend layout:
// activation des layouts Zend_Layout::startMvc($config->layout); /* Extrait de mon fichier ini *layout.layout = template *layout.contentKey = content *layout.layoutPath = ../application/views/layouts */
et à chaque fois que je fais appel à l'action stack je sors du contexte du layout.
De plus, j'ai fais un test, dans mon fichier index.phtml (donc rendu courant) j'ai essayé de également un appel au bloc comme ceci:
<?php $this->action("bestSite", "bloc", null); ?>
mais la c'est encore pire, je ne suis toujours pas dans le rendu du layout et en plus on n'affiche meme plus le rendu de bestSite.
Hors ligne
Si tu met ca dans ta vue normal ca marche pas, t'as oublié le echo
<?php echo $this->action("bestSite", "bloc", null); ?> //ou encore si tu a l'extension shot_open_tag <?=$this->action("bestSite", "bloc", null); ?>
Sinon je trouve bizarre que ca disable le layout
Perso je n'utilise plus l'actionStack. J'ai plutôt l'habitude d'appeller des actions soit dans mon layouts soit dans ma vue (cf code ci dessus )
Hors ligne
En effet j'avais oublié le echo.
Mais le résultat est le même je sors du contexte du layout et je sais pas pourquoi.
Sachant que si l'utilisation de l'actionStack ne rentre pas en conflit avec l'utilisation du Zend layout, il n'y a apparement aucune raison de ce problème d'affichage !!!!!
Hors ligne
Je comprends pas trop le problème, un coup de débuggeur avec des bons breakpoints mettra tout de suite le doigt sur le problème.
Hors ligne
Honte à moi,
en fait dans mon bloc controlleur j'avais une clause dans le predispatch qui annuler le layout
$this->_helper->layout->disableLayout();
car je croyais qu'il fallait le désactiver pour qu'il n'y ai pas d'effet cascade.
Erreur de newbie !!!!!!
Hors ligne
Tu as utilisé le débuggeur ?
C'est vraiment un outil indispensable lorsqu'on développe avec ZF ( ou plus généralement, avec bcp d'objets PHP )
Hors ligne
Non, en fait je n'ai pas réussit à le configurer !!!
est ce que tu connais un tuto qui permet de le configurer ?
PS: j'utilise bien Zend studio pour mon env de dev ...
Hors ligne
Y'a pas mal de disucssion sur le forum à propos de debuggers (je les ai personnellement utilisé ) pour Eclipse - du coup ça devrait marcher pour Zend Studio... A voir.
Hors ligne
Pour Zend Studio (for Eclipse) ya presque rien à faire : une dll à copier (sous Windows), 2 lignes à ajouter à php.ini, et c'est parti ^^
Hors ligne
ok bon je vais me pencher dessus alors.
Merci
Hors ligne
Pages: 1