есть ли способ, как нажимать на страницу zend_navigation типа mvc или uri и давать атрибут onclick?
array ( 'type' => 'uri', 'label' => 'Map', 'title' => 'Map', 'uri' => '#', 'click' => 'alert("show map");' )
У меня есть суб-меню, в которое включены ссылки, которые срабатывают только модально. до сих пор я использую свое собственное «навигационное» решение, но я хочу использовать zend's one.
спасибо
я должен упомянуть, что я знаю простой обходной путь – есть функция onload javascript, которая присоединяет события к некоторому меню в соответствии с их идентификаторами, но я просто хочу сохранить его простым и поддерживать определение всего меню в одном месте.
Вы можете написать свой собственный помощник меню вместо помощника Navigation_Menu .
Основной способ расширения – htmlify :
class MyApp_View_Helper_MyMenu extends Zend_View_Helper_Navigation_Menu { public function htmlify(Zend_Navigation_Page $page) { // ... put original code here ... // get attribs for element $attribs = array( 'id' => $page->getId(), 'title' => $title, 'class' => $page->getClass() ); // does page have a href? if ($href = $page->getHref()) { $element = 'a'; $attribs['href'] = $href; $attribs['target'] = $page->getTarget(); $attribs['onclick'] = $page->getClick(); // the click attribute } else { $element = 'span'; } return '<' . $element . $this->_htmlAttribs($attribs) . '>' . $this->view->escape($label) . '</' . $element . '>'; } }
Затем позвоните своему помощнику через:
<?php echo $this->navigation()->myMenu(); ?>
см. полный пример здесь: Получение меню Zend_Navigation для работы с Fisheye от jQuery