Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-03-2014 23:06:13

Paul75
Membre
Lieu: Paris
Date d'inscription: 23-12-2010
Messages: 101

Navigation à partir d'une base de donnée.

Bonjour,

Je cherche à avoir les menus en haut de la page mais que je tire de la base de données et non pas d'un fichier de configuration dans un module comme je vois partout.

Et comment faire pour qu'il soit dans un layout ?

J'ai 2 layout : Admin et Site.

Merci

Hors ligne

 

#2 08-03-2014 00:20:34

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Navigation à partir d'une base de donnée.

Hellow!
alors la désolé mais va falloir être plus précis ^^'

pour avoir ton menu tu peu l'enregistrer dans ta bdd comme une table normale, tu n'aura qu'a aller récupérer tes catégories au moment de la création de ta page.

Je te conseil d'aller voir du cotés des plugin controller, c'est pour moi la meilleure façon de réaliser ses menus ^^
Pour te résumer, les plug in sont des "micros controllers" qui te permettent de réaliser des tâches très précises.
(parfait pour réaliser la tâche : créer menu!! big_smile )

si tu est certains que ton menu n'aura pas besoin de radicalement changer, tu peu l'insérer dans ton layout,
mais je conseil plutot d'appeler ton plugin directement dans le controlleur au moment de rendre ta vue

Code:

dans ton controlleur:

function monaction() {

    $menu = calldetonplugin;
    ...
    $view->addChild('menu', $menu);
    ....
    return view;

}

dans ta vue :
<?= $this->menu;?>
<div>mon super content</div>
...

même si du coup tu doit plus souvent répéter l'appel à la création de ton menu, tu en a un parfait contrôle et c'est peu couteux en thermes de lignes vu que tu aura externalisé sa création.
La maintenance n'en est donc pas vraiment diminuée, masi du coup tu peu t'autoriser la fantaisie d'avoir des pages sans menu!! ^_^

Dernière modification par flobrflo (08-03-2014 00:22:02)

Hors ligne

 

#3 10-03-2014 01:08:22

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

Re: Navigation à partir d'une base de donnée.

Salut, désolé flobrfo mais utiliser les plugins pour ça n'est clairement pas la bonne solution ! Tu dois l'appeler sur toutes tes actions de tous tes contrôleurs ! C'est rébarbatif et si tu veux le regirer tu dois passer dans chaque actions ... Donc clairement non ! Les plugins c'est par exemple identity(), params() qui permettent de s'implifier et d'éviter de réécrire du code ds tes contrôleurs ! La solution c'est d'utiliser les aides de vue qui fonctionnent à peu prêt de la même manière ! Tu peux avoir accès à la bdd si tu le créé depuis une factory ou en injectant le service locator avec l'interface ServiceLocatorAwareInterface. De cette facon ton aide de vue appelle le service qui s'occupe de récupérer les menus de la base de données et ton aide de cue retourne un viewModel (avec un template ou non). Pour l'utiliser il suffit de l'appeler dans le layout et c'est dispo partout dans toute ton application qui utilise ce layout.

Hors ligne

 

#4 10-03-2014 08:02:25

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Navigation à partir d'une base de donnée.

Wep, disons que dans l'idée je suis d'accord,
mais si tu veux qu'une de tes pages n'affiche pas ton menu, tu peu le gérer avec ton view Model?

EDIT: we oubli, enfait en mettant une petite condition dans le layout ça pourrait passer en effet ^^

Dernière modification par flobrflo (10-03-2014 08:03:39)

Hors ligne

 

#5 10-03-2014 08:58:22

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

Re: Navigation à partir d'une base de donnée.

Voila big_smile

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