Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je cherche un moyen simple de factoriser l'affichage de mes erreurs.
Dans tous les contrôleurs lorsque j'intercepte une erreur je la mets dans un tableau :
$this->view->errors[]="Erreurkitu";
Dans toutes les vues je suis obligé de mettre :
<?php if(!empty($this->errors)) echo $this->formErrors($this->errors, array()) ?>
Le problème c'est que c'est chiant et qu'il y a surement moyen de factoriser ça mais je vois pas comment.
Le mieux pou rmoi serait de récuperer ces erreurs directement dans mon layout (au dessus du footer)
Bref comment feriez vous ?
Hors ligne
Salut Sebondus,
As tu trouver une solution à ce problème ?
Passer par le Zend_Registry, ne serait pas une piste éventuellement ?
Cordialement,
Hors ligne
Ou alors avec un helper?
http://www.kitpages.fr/zf_helper_plugin.php
Si je ne me trompe pas, le helper peut recupérer les erreurs du controller.
(Suggestion d'un débutant ZF).
Hors ligne
Oui, je pense après avoir lu le schéma général de Philippe, qu'il faudrait gérer cela dans le postDispatch de l'helpers. Comme cela on a récupéré toutes les erreurs potentielles...
Enfin, je ne suis pas sur. Philippe ??
Cordialement,
Hors ligne
Bonjour,
A priori si tu veux factoriser du code de ta vue, je pense qu'il faut regarder du coté des vues :
- créer un header.php que tu inclues dans chaque vue et tu mets ton code d'affichage dans ton header.php
- utiliser Zend_Layout (mais là je ne peux pas aider, je ne l'utilise pas, mais on peut certainement ajouter du code dynamique dans le html du layout...)
Je pense que ça ne serait pas pertinent de mettre dans un helper un élément qui ne concerne la vue.
A+, Philippe
Hors ligne
En utilisant Zend_Layout ton bout de code sera automagiquement sur toutes les pages :
layouts/_footer.phtml
<?php if(!empty($this->errors)) echo $this->formErrors($this->errors, array()) ?>
A la fin de layouts/main.phtml :
.... <?php echo $this->partial("_footer.phtml"); ?> </body> </html>
Bien sur avec le bootstrap (html/index.php) initialisé :
.... Zend_Layout::startMvc(array( 'layoutPath' => '../application/default/layouts', 'layout' => 'main' )); ....
rmq : Ces bouts de code sont par défaut maintenant, dans un nouveau projet ZF (zend studio pour eclipse)
Dernière modification par fte (26-06-2008 14:29:55)
Hors ligne
Bonjour,
je comprends ta question comme une gestion de message de page en page (j'espere bien comprendre)
Si j'ai bien compris (je ne suis pas sur) :
Il existe un helper (controller) : le flash messenger qui permet de gerer les message de page en page.
Je l'ai ajouté comme champs de mon super controller, père de tous mes controller, puis dans le postdispatch du super controller :
$this->view->message += $this->_flashMessenger->getMessages();
dans un layout j'affiche mon tableau de messages.
du coup j'ai une gestion globale de mes messages (erreurs, confirmation ...).
En espérant que ca reponds à ta question.
Hors ligne
Merci pour ces réponses, vous l'avez surement vu, mon message datais du 18-04-2008
ichevc02->J'avais opté pour la même méthode que toi
Hors ligne
Désolé, Sébondus, c'est de ma faute. C'est moi qui ait relançé le thread !!
Hors ligne
Ca servira à d'autres surement
Hors ligne