zend_navigation和onclick属性

时间:2009-08-19 18:53:18

标签: php zend-framework navigation

有没有办法如何推入zend_navigation页面类型mvc或uri并给它onclick属性?

array (
    'type' => 'uri', 
    'label' => 'Map', 
    'title' => 'Map', 
    'uri' => '#', 
    'click' => 'alert("show map");' )

我有子子菜单包括仅触发模态的链接。直到我使用我自己的“导航”解决方案,但我想使用zend的。

感谢

2 个答案:

答案 0 :(得分:0)

我应该提一下,我知道简单的解决方法 - 有一些onload javascript函数,根据他们的id将事件附加到某个菜单,但我只想保持简单并在一个地方保持整个菜单定义。

答案 1 :(得分:0)

您可以编写自己的菜单助手,而不是 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(); ?>

请在此处查看完整示例:Getting Zend_Navigation menu to work with jQuery's Fisheye