Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je dispose d'une action très générique qui brasse un certain nombre de variables (récupérés par getParams() ).
Le rôle de cette action est de proposer des critères de recherche, et d'afficher des résultats en fonctions des critères déjà sélectionnés.
Les critères de recherches seraient affichés sous forme de menus (un en haut, un à gauche, en fonction du type de critère), et le résultat de recherche serait affiché dans l'espace principal, au centre.
J'avais pensé à utiliser le layout et des partial() (un partial par sous-menu = critère), mais je bute. Mes menus sont bien trop dynamiques, car leur affichage change en fonction de la page et des critères sélectionnés par l'utilisateur. Ca devient vite lourd de passer un tableau de variables en 3e paramètre du partial() :s
J'aimerais donc pouvoir dispatcher mon affichage dans tout un tas de petites vues, que mon action serait capable de remplir avec les résultats dont elle dispose.
S'il est possible de passer par autre chose que le layout, alors pourriez vous m'expliquer comment ?
N'est-il pas possible d'affecter un tableau de vues à l'action, au lieu d'une seule ? (par exemple, au lieu d'appeler $this->view, je pourrais appeler $this->view1, $this->view2, etc... )
Merci d'avance !
Hors ligne
Je ne suis pas sur de ce que tu veut faire exactement mais comme piste tu pourrait exploiter
Zend_Controller_Front::getInstance()->getRequest() dans tes partials ou utiliser Zend_Registry
A froid comme ça j'ai pas d'autre idées
Hors ligne
Je voudrais agréger des vues qui seraient toutes appelées par une seule et même action.
Chaque vue ayant pour rôle de mettre en forme une partie des variables de vue.
Les paramètres de la requête ne sont qu'une partie des variables à rendre. Le getRequest() ne suffit donc pas. Sérialiser des gros tableaux de variables dans le registre, juste pour les rendre accessibles à plusieurs fichiers de vue.... mouaif...
Hors ligne
Faut utiliser les segments.
Ton action rend ce quelle veux dans les segments qu'elle veut, et dans ton layout, tu places tes segments
Hors ligne
Et si dans ma vue principale je fais des
<?php echo $this->render('bloc/menu1.phtml') ; ?>
Les variables de vue suivront-elles ?
Car (je le répète pour nORKy) utiliser des segments dans le layout est une solution trop rigide.
Chaque sous menu doit pouvoir être dans n'importe quel ordre, et soit dans le menu du haut, soit celui de gauche (soit les deux), selon la page affichée, et les critères de recherche déjà sélectionnés. Par exemple, si un critère géographique est sélectionné, le sous menu géo doit passer de la gauche vers le menu haut, en remplaçant un autre sous menu du menu haut.
Hors ligne
Les segments ne sont pas rigides.
Tu décides de ce que tu veux enregistrés dans chaque segment
Admettons tu as dans ton layout les segments 'haut', 'gauche'.
Rien ne t'empèche dans ton action de rendre du code dans haut, un autre code dans gauche et du code dans les 2
Tu as pleins de fonctions qui t'aident à remplir tes segments :
- appendBody($content, $name = null)
- append($name, $content)
- prepend($name, $content)
- insert($name, $content, $parent = null, $before = false)
- clearBody($name = null)
Tous ca dans l'objet reponse.
Hors ligne
Et les Placeholder Helper ça ne ferait pas l'affaire ?
http://framework.zend.com/manual/en/zen … laceholder
Hors ligne