2010-04-01 3 views
3

Я разрабатываю приложение в настоящий момент с помощью zend, и я отделил приложение от модулей.zend_navigation и модули

Модуль по умолчанию является основным сайтом, на котором не доступны права доступа пользователей и имеют свободное владение для осмотра. Когда вы входите в систему, в зависимости от типа пользователя вы либо переходите к модулю A, либо к модулю B, который управляется простыми списками ACL. Если у вас есть доступ к модулю А, вы не можете получить доступ к модулю B и наоборот. Оба типа пользователей могут видеть модуль по умолчанию.

Теперь я хочу использовать Zend_Navigation для управления всей навигацией приложений во всех модулях. Я не уверен, как это сделать, так как все примеры, которые я видел, работают в модуле или очень простое приложение.

Я пытался, чтобы мой файл navigation.xml выглядеть следующим образом:

<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> 

это, если штраф для модуля по умолчанию, но как бы я идти о других модулях к этой странице навигации? У каждого модуля есть собственная домашняя страница и т. Д.

Могу ли я добавить уникальный файл navigation.xml для каждого модуля, который загружен в плагин preDispatch, который я написал для обработки моих ACL? Или сохранить их в одном массивном файле навигации?

Любые советы будут фантастическими.

Спасибо,

Грант

+1

«Не буду ли я добавлять уникальный файл navigation.xml для каждого модуля» Кажется, что это лучшее и управляемое решение. Таким образом вы держите эти два модуля красиво разделенными. –

ответ

0

Грант,

обычно я создаю папку конфигурации под каждым модулем, и в там я помещаю navigation.xml документ. Это помогает уменьшить проблемы с перекрестной зависимостью.