2010-04-01 6 views
3

Je développe actuellement une application avec zend et j'ai séparé l'application en modules.zend_navigation et modules

Le module par défaut est le site principal dans lequel les utilisateurs n'ont pas accès et ont la possibilité de regarder autour de soi. Lorsque vous vous connectez, en fonction du type d'utilisateur, vous accédez au module A ou au module B, qui est contrôlé par de simples ACL. Si vous avez accès au module A, vous ne pouvez pas accéder au module B et vice versa. Les deux types d'utilisateurs peuvent voir le module par défaut.

Maintenant, je veux utiliser Zend_Navigation pour gérer l'ensemble de la navigation des applications dans tous les modules. Je ne suis pas sûr de savoir comment procéder, car tous les exemples que j'ai vus fonctionnent dans un module ou une application très simple.

J'ai essayé d'avoir mon fichier navigation.xml ressembler à ceci:

<configdata> 
<navigation> 

     <label>Home</label> 
     <controller>index</controller> 
     <action>index</action> 
     <module>default</module> 

     <pages> 
      <tour> 
       <label>tour</label> 
       <controller>tour</controller> 
       <action>index</action> 
       <module>default</module> 
      </tour> 

      <blog> 
       <label>blog</label> 
       <url>http://blog.mysite.com</url>     
      </blog> 

      <support> 
       <label>Support</label> 
       <controller>support</controller> 
       <action>index</action> 
       <module>default</module> 
      </support> 

     </pages> 

</navigation> 
</configdata> 

Ce si bien pour le module par défaut, mais comment pourrais-je aller sur les autres modules de cette page de navigation? Serait-il préférable d'ajouter un fichier navigation.xml unique pour chaque module chargé dans le plugin preDispatch que j'ai écrit pour gérer mes ACL? Ou les garder dans un fichier de navigation massive?

Tous les conseils seraient fantastiques.

Merci,

Grant

+1

"Serais-je mieux d'ajouter un fichier de navigation.xml unique pour chaque module" Semble à moi comme la meilleure solution et gérable. De cette façon, vous gardez les deux modules bien séparés. –

Répondre

0

Grant,

Je crée généralement un répertoire de configuration sous chaque module, et à l'intérieur je place là un document navigation.xml. Cela aide à atténuer les problèmes de dépendance croisée.