Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-08-2011 10:25:41

ferdikam
Membre
Date d'inscription: 03-05-2009
Messages: 18

Charger un fichier navigation par module

Salut je travaille en ce moment sur une application modulaire.
Je voudrais à l'aide du composant Zend_Navigation charger le fichier xml de navigation par module.
Par exemple si j'ai un module Blog par exemple, je voudrais charger le fichier navigation.xml pour ce module pour l'afficher dans mon layout. si j'ai un module Admin, faire de même pour le fichier menuadmin.xml.

Hors ligne

 

#2 12-08-2011 14:41:18

Alcide_
Membre
Lieu: Brest
Date d'inscription: 20-03-2010
Messages: 31
Site web

Re: Charger un fichier navigation par module

Tu pourrais utiliser un plugin (Zend_Controller_Pugin) pour la gestion de ta navigation et ainsi charger le bon fichier xml selon le module demander dans la requête.

Voilà un exemple si tu veux :

Code:

[lang=php]
class Test_Controller_Plugin_MonPlugin extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        
        /*récupération du xml selon le module*/
        $module = strtolower($request->getModuleName());
        $xmlFileName = 'menu'.$module.'.xml';
        $xmlConfig = new Zend_Config_Xml("./path/to/" . $xmlFileName, 'section');
        
        /*instanciation et configuration de ta navagation + helpers et autres*/
        $navigation = new Zend_Navigation($xmlConfig);
        $view = new Zend_View();
        $view->navigation($navigation);
        /*
         *ta configuration des helpers : menu, breadcrumbs, etc 
         */
        
        /*configuration du ViewRenderer*/
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
        $viewRenderer->setView($view);
    }
}

Je n'ai pas la doc sous la main donc la syntaxe est à vérifier !

Hors ligne

 

#3 23-08-2011 11:03:02

webdigit
Membre
Date d'inscription: 23-08-2011
Messages: 10

Re: Charger un fichier navigation par module

Bonjour,

Merci  Alcide_ pour cet exemple.

Je suis également sur un développement d'application modulaire.

Ma particularité :

je souhaiterai

- charger un menu de navigation générique (utilisé pour la plupart des modules)
- charger, quand je le souhaite, un menu spécifique supplémentaire pour certains modules.

Ceci me permettrai d'avoir un menu supplémentaire en fonction des droits des utilisateurs de mon appli. A moins que Zend_auth + Zend_acl soit une solution plus adéquat et de faire intervenir Zend_acl  au niveau de Zend_navigation ?

Merci pour votre aide !

Hors ligne

 

#4 23-08-2011 14:11:51

Alcide_
Membre
Lieu: Brest
Date d'inscription: 20-03-2010
Messages: 31
Site web

Re: Charger un fichier navigation par module

Si tu veux afficher différents menus selon le rôle des utilisateurs, le plus simple est d'utiliser un plugin pour configurer tes aides de vue.

Code:

[lang=php]

Test_Controller_Plugin_MonAutrePlugin extends Zend_Controller_Plugin_Abstract
{
    /***/
    public function preDispatch(Zend_Controller_Request_Abstract $request) {
        $acl = new Zend_Acl();
        $role = 'guest';
        /*Configuration, vérifications de role, de module/controller/action, etc*/
        
        /*configuration des aides de vue*/
        Zend_View_Helper_Navigation_HelperAbstract::setDefaultAcl($acl);
        Zend_View_Helper_Navigation_HelperAbstract::setDefaultRole($role);
        /***/
    }
}

Ainsi tu n'afficheras que les menus autorisés dans tes ACLs pour le rôle courant.
La doc sur les helpers de navigation

Personnellement j'utilise un plugin global qui gère tout ce qui a trait au ACLs et à l'authentification, ce qui permet de générer la navigation, l'identification, les autorisation d'accès, les redirections, etc...

Dernière modification par Alcide_ (23-08-2011 14:14:09)

Hors ligne

 

#5 31-10-2011 10:37:03

webdigit
Membre
Date d'inscription: 23-08-2011
Messages: 10

Re: Charger un fichier navigation par module

Merki smile

JC

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