2012-01-03 6 views
3

Здравствуйте, я вникаю в эту проблему, не найдя решения. Кажется очень простым, но я немного обернулся.Как отображать родительский и дочерний объекты в меню, если они имеют одинаковый URI и используют Zend_Navigation?

Я пытаюсь выделить родителя и 1 ребенка в меню. Оба имеют одинаковый uri, но только родитель получает активный класс.

Вот мой XML:

<configData> 
<apps> 
<agenda> 
    <label>Agenda</label> 
    <uri>/apps/agenda</uri> 

    <pages> 
     <page1> 
      <label>Page 1</label> 
      <uri>/apps/agenda</uri> 
     </page1> 
     <page2> 
      <label>Page 2</label> 
      <uri>/apps/agenda/page2</uri> 
     </page2> 
    </pages> 
</agenda> 
</apps> 
</configData> 

здесь мой .phtml:

<div> 
    <?php echo $this->navigation(Zend_Registry::get('Zend_NavigationApp'))->menu() 
      ->renderMenu(null, array(
      'minDepth' => null, 
      'maxDepth' => 1, 
      'ulClass' => 'navigation', 
      'onlyActiveBranch' => false)); 
      ?> 
</div> 

и здесь сгенерированный HTML:

<div> 
<ul class="navigation"> 

<li class="active"> 
    <a href="/apps/agenda">Agenda</a> 
    <ul> 
     <li> /*Here the expected active class*/ 

      <a href="/apps/agenda">Page 1</a> 
     </li> 
     <li> 
      <a href="/apps/agenda/page2">Page 2</a> 
     </li> 
    </ul> 
</li> 

</ul> 
</div> 

Все, что я хочу сделать, это получить родительский «li» и дочерний элемент «li» с активным классом после того, как я нажал на родительскую ссылку.

+0

Если у вас есть решение, разместите его как ответ, а затем примите его, когда сможете. Таким образом, вопрос будет отмечен как ответ. – vascowhite

+0

Все готово! Спасибо :-) – FredRoger

ответ

2

Решение

Использование MVC вместо URI типа файла конфигурации XML исправлены все мои проблемы.

Вот моя неподвижная XML:

<configData> 
<apps> 
<agenda> 
    <label>Agenda</label> 
    <module>module_1</module> 
    <controller>control_1</controller> 
    <action>action_1</action> 
    <route>agenda_1</route> 

    <pages> 
     <page1> 
      <label>Page 1</label> 
      <module>module_1</module> 
        <controller>control_1</controller> 
        <action>action_1</action> 
        <route>agenda_1</route> 
     </page1> 
     <page2> 
      <label>Page 2</label> 
      <module>module_2</module> 
        <controller>control_2</controller> 
        <action>action_2</action> 
        <route>agenda_2</route> 
     </page2> 
    </pages> 
</agenda> 
</apps> 
</configData> 

Обратите внимания, что я использую определение маршрута в моей ине файла.

+0

Обязательно ли объявлять модуль и действие? Любая проблема без объявления? – dextervip