Настройка Zend Navigation Menu для использования JQuery jdmenu

Поэтому я следовал руководству Zend Framework: навигация и хлебные крошки с XML-файлом в ZF 1.8, и все работает хорошо, но теперь я хочу использовать jdmenu плагин jquery для рендеринга более четкого горизонтального меню. По умолчанию фреймворк Zend заключает HTML-код меню в это имя элемента.

<ul class="navigation">

Я думаю, что могу вызвать этот метод, чтобы установить атрибут класса элемента 'ul' в 'jbmenu'

Zend_View_Helper_Navigation_Menu->setUIClass('jdMenu');

но я не уверен, как получить доступ к ссылке на объект Zend_View_Helper_Navigation_Menu. Нужно ли это делать в файле Bootstrap.php в методе __initNav()? Любые советы будут оценены.


person emeraldjava    schedule 19.07.2009    source источник
comment
Даже с загрузкой плагина jd_menu структура сгенерированного zend меню html не такая, как мне бы хотелось, и она не соответствует ожиданиям библиотеки jd_menu. На данный момент я собираюсь оставить это и просто использовать собственное решение css в своем приложении.   -  person emeraldjava    schedule 25.07.2009


Ответы (3)


Если вы хотите указать это в Zend, вы получаете доступ к View Helper при печати меню в вашем макете. Итак, вы можете использовать:

//layout.phtml
echo $this->navigation()->menu()->setUlClass('jdMenu');
person writeren    schedule 21.07.2009
comment
спасибо за это - правильное имя класса css - «jd_menu». ‹?php echo $this-›navigation()-›menu()-›setUlClass('jd_menu'); ?› - person emeraldjava; 25.07.2009
comment
Даже с загрузкой плагина jd_menu структура сгенерированного zend меню html не такая, как мне бы хотелось, и она не соответствует ожиданиям библиотеки jd_menu. На данный момент я собираюсь оставить это и просто использовать собственное решение css в своем приложении. - person emeraldjava; 25.07.2009

jdmenu инициализируется следующим образом:

$('ul.jd_menu').jdMenu();

Таким образом, вы должны иметь возможность оставить Zend в покое и просто изменить строку инициализации, чтобы она соответствовала имени используемой UL. Например.,:

$('ul.navigation').jdMenu();
person joej    schedule 19.07.2009
comment
Я не мог заставить работать javascript-вызов jdMenu(), поэтому я просто использовал jquery, чтобы добавить дополнительное имя класса в созданный zend div. $(ul.navigation).addClass(jd_menu); - person emeraldjava; 25.07.2009

Использовать это:

$this->navigation()->menu()->setUlClass('jd_menu')->renderMenu($container);

person Sil2    schedule 19.01.2010