Как сделать родителей и потомков активными в меню, если они имеют одинаковый URI и используют Zend_Navigation? - PullRequest
3 голосов
/ 04 января 2012

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

Я пытаюсь выделить в меню одного из родителей и одного ребенка.У обоих одинаковые 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" parent и "li" child с активным классом после того, как я нажал на родительскую ссылку.

1 Ответ

2 голосов
/ 06 января 2012

Решение

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

Вот мой фиксированный 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>

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

...