Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-05-2008 15:15:01

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

[1.5]Probleme d'Intégration d'une toolbar

Bonjour,

Mon appli (backoffice) possède 2 layout :

1 pour la page d'accueil, 1 pour toutes les pages linkées par le menu de la page d'accueil.

En haut de chaque page, je souhaite intégrer une toolbar qui serait customisable pour chaque page (afficher ou non certains boutons), en passant à un helper, une action (ou autre) un tableau des paramètres de chaque bouton.
Ce tableau de paramètres serait différent pour chaque controller.

Je cherche le moyen le plus simple d'intégrer cette toolbar sur chaque page, j'ai pensé à utiliser un view helper dans chaque vue en lui passant le tableau des paramètres de la toolbar mais je trouve ça un peu redondant.
N'y aurait il pas moyen de l'intégrer directement dans le layout (mais comment récuperer le tableau des paramètres de la toolbar de chaque controller ????)

Bref je divague big_smile y a surement un moyen très simple mais la je me prends la tête

Merci wink

Dernière modification par sebondus (15-05-2008 15:15:55)

Hors ligne

 

#2 16-05-2008 07:20:11

whitespirit
Membre
Date d'inscription: 25-01-2008
Messages: 393

Re: [1.5]Probleme d'Intégration d'une toolbar

Moi, j'ai un menu dans le genre, mais j'ai fait un truc très modulable, donc assez pénible à implémenter.

Au final, j'ai :

- une classe menu : qui construit le menu en prenant les paramètres d'entrées. J'implémente la méthode __toString() pour pouvoir afficher le menu par echo maClasse. Cette classe est unique dans l'application, je la passe dans le Zend_Registry pour pouvoir modifier les paramétres.

- un controlleur qui va afficher les éléments du template (une action headerAction, menuAction...) que j'appelerai par : echo $this->action('menu','controlleur','module');  dans le Layout. 'menuAction', récupère le menu du registry et l'affiche par 'echo menu'

- une classe TemplateController qui hérite de Zend_Controller_Action. Dans ce controlleur je défini toutes les actions que j'aurai dans l'appli (cad ajouter, modifier, lire...) et dans chaque action j'initialise le menu (récupéré avec le registry) avec les paramètres nécessaires (cette classe fait encore plein d'autres choses).

- enfin mes controlleurs héritent de TemplateControlleur, j'écris les actions sans me soucier du menu, ou j'apporte une petite modification (menu->setTitle('blabla')wink car j'appelle à chaque fois parent:nomAction().

Au final, mes controlleurs ne gère pas le menu, si demain je le change, je ne modifie que le TemplateControlleur, etc...  Mais ca reste peut-être lourd pour toi. Pour moi, c'était 'pénible à implémenter' car cherchais la meilleure solution, du coup j'ai adapté 1000x mon code pour arriver à ce résultat. Mais maintenant,  le plus long serait d'écrire la classe menu, le reste prend 15mn. Ce que je retiens, c'est que l'idée de créer la classe TemplateController était bonne !

Bon courage

Hors ligne

 

#3 21-05-2008 13:10:56

phpman
Membre
Date d'inscription: 20-03-2008
Messages: 138

Re: [1.5]Probleme d'Intégration d'une toolbar

Bon je viens de lire avec beaucoup de retard la solution que tu me proposes et je comprends pas vraiment tout.

Je vais poser un question équivalente et plus compréhensible :
J'ai suivi le tuto http://julien-pauli.developpez.com/tuto … ge-tables/ pour gérer simplement et efficacement la pagination dont je me sert dans la pluspart des vues de mon backoffice.

Chaque controlleur à une action "listeAction()" qui permet de lister les enregistrerment en base et de gerer les bariables de pagination.

Maintenant je cherche à intégrer de manière très simple une sorte de barre de navigation ( des liens "premiere page", "page suivante".... un select pour le numéro de page et un input permettant de modifier le nb d'éléments par page ... bref quelque chose de plutot statique.

J'ai donc pour l'instant crée un helper "NAvigationBar" auquel je passe le numéro de page en cours, le lien de la page courante, le nombre d'éléments par page, le nombre de pages total et d'autres (criteres de tri par ex).
Et ça me génère automatiquement ma barre de navigation dans ma vue.

Le problème est que je n'aime pas ces récurences, faire appel à ce helper dans toutes mes vues 'liste.phtml' est trop récurent.

N'y a t'il pas un moyen de l'integrer automatiquement lorsqu'une action 'listeAction' est appellée ?
Ou une autre solution mais j'aimerai ne pas avoir faire appel à ce helper partout !

Merci wink

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