Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-05-2012 03:16:17

Bouchra
Membre
Lieu: Montréal
Date d'inscription: 07-12-2011
Messages: 47

Gestion de menu

Bonjour les z-f,

Comment peut on gérer deux type de menus different. A titre d'info j'opte pour un systeme modulaire donc je souhaiterais avoir un menu different d'un module par rapport aux autres modules.

Merci d'avance.

Hors ligne

 

#2 10-05-2012 20:58:36

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: Gestion de menu

Bonsoir,

Cela dépend, au final, de la façon dont tu crées ton menu (fichier ini, XML, base de données, ...).

Si tu travailles avec un fichier XML ou ini, tu peux créer un fichier par type de menu.
Si le menu est propre à un module, tu peux préfixer le nom de ton fichier par le nom du module, et du coup, charger le fichier de façon dynamique, à partir du nom du module courant.

Si tu récupères, comme moi, ton menu dans une table de ta base de données, c'est simple aussi : tu ajoutes un champ 'type_menu', qui sera en clause WHERE dans la requête qui ira chercher tes pages, lors de la construction de ton container.

C'est juste des pistes, il faudrait avoir plus d'infos sur ton cas pour t'aider plus précisément smile
Mais bon, ça fait un 'angle de réflexion'

Hors ligne

 

#3 13-05-2012 03:51:38

Bouchra
Membre
Lieu: Montréal
Date d'inscription: 07-12-2011
Messages: 47

Re: Gestion de menu

Merci pour le temps que tu as consacré pour me répondre delorbe,

J'apprécis beaucoups ta proposition de mettre une base de donées derriere. peux tu me faire un exemple avec la table que tu crées. Normalement j'utilise XML. Mais apres la réflexion que tu m'as fait je souhaiterais de le faire d'une maniere dynamique.


Et encore merci.

Hors ligne

 

#4 13-05-2012 09:26:48

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: Gestion de menu

De rien smile

Construire un menu dynamiquement a été la première chose que j'ai voulu faire avec Zend.
Il faut comprendre quelques principes avant tout, et d'abord, celui de Zend_Navigation.

Voici un exemple que tu peux mettre directement dans ton IndexController :

Code:

[lang=php]
// Build navigation container
        $container                         = new Zend_Navigation();
        $t_pages                        = array();
        
        // Create two pages
        $t_pages[] = array('id'         => 1,
                           'order'         => 1,
                           'label'         => 'Accueil',
                           'title'         => 'Bienvenue sur mon site',
                           'module'     => 'default',
                           'controller' => 'index',
                           'action'     => 'index');
                        
        $t_pages[] = array('id'         => 2,
                           'order'         => 2,
                           'label'         => 'Contact',
                           'title'         => 'Contactez-moi',
                           'module'     => 'default',
                           'controller' => 'index',
                           'action'     => 'contact');
                        
        // Add pages to container
        $container->addPages($t_pages);

        // Use navigation as menu
        echo "<h1>Menu :</h1>";
        echo $this->view->navigation($container)->menu()->render();

        // Use navigation as breadcrumbs
        echo "<h1>Fil d'Ariane :</h1>";
        echo $this->view->navigation($container)->breadcrumbs()->setMinDepth(0)->setSeparator(" &raquo; ");

        // Use navigation as sitemap
        echo "<h1>Plan du site :</h1>";
        echo $this->view->navigation($container)->sitemap()->setFormatOutput(true);

Si tu comprends ce principe de base, alors il ne te reste qu'à aller chercher tes pages dans ta base de données, dans une table navigation qui contiendrait toutes les infos du tableau $t_pages.
Ensuite un simple select * from navigation, et tu peux parcourir tes résultats en insérant les enregistrements que tu as récupérés au fur et à mesure dans le tableau $t_pages.

C'est clair ou pas?
smile

Hors ligne

 

#5 13-05-2012 17:58:18

Bouchra
Membre
Lieu: Montréal
Date d'inscription: 07-12-2011
Messages: 47

Re: Gestion de menu

Je penses que c'est très clair, deja avec ton code comme test marche à merveille. Bon je développerais une fois que je bloques  je retournerai. smile smile smile smile

Hors ligne

 

#6 13-05-2012 18:00:38

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: Gestion de menu

Bon courage wink

Hors ligne

 

#7 14-08-2012 11:13:22

lodotbe
Membre
Date d'inscription: 21-06-2012
Messages: 14

Re: Gestion de menu

Bonjour Delorbe,

Je rebondis sur ton post car j'aimerais faire un menu dynamique (config db) mais je coince avec le ZF2 (beta5).
As-tu déjà essayé le ZF2?

Hors ligne

 

#8 14-08-2012 11:35:15

delorbe
Membre
Date d'inscription: 06-08-2010
Messages: 57

Re: Gestion de menu

Bonjour lodotbe,

Non, désolé je ne me suis pas encore mis à ZF2.
Pas encore eu le temps, je travaille encore sur des projets en ZF1.

Et puis, j'attends que la version stable soit sortie pour m'y mettre smile

Hors ligne

 

#9 14-08-2012 14:09:55

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: Gestion de menu

lodotbe a écrit:

Bonjour Delorbe,

Je rebondis sur ton post car j'aimerais faire un menu dynamique (config db) mais je coince avec le ZF2 (beta5).
As-tu déjà essayé le ZF2?

Salut, essaie de mettre ça côté ZF2 tu auras peut être un peu plus de réponse, nous ne sommes que peu à utiliser le ZF2 actuellement (on doit pouvoir nous compter sur les doigts de la main).

Éventuellement tu peux indiquer ce sujet en complément dans ton poste afin de voir si quelqu'un a une solution à te proposer mais dans tous les cas il faudra faire preuve de patience !

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