php – 如何扩展Zend Navigation Menu View Helper?
发布时间:2020-12-13 16:39:13 所属栏目:PHP教程 来源:网络整理
导读:我需要更改Zend_View_Helper_Navigation_Menu的输出.我找到了我需要修改的两个功能,我知道如何进行我需要的更改.我不知道的是如何使Navigation对象使用我的视图助手而不是Zend. 代表我的班级额外资讯的代码段: // file /library/My/View/Helper/Navigation/
我需要更改Zend_View_Helper_Navigation_Menu的输出.我找到了我需要修改的两个功能,我知道如何进行我需要的更改.我不知道的是如何使Navigation对象使用我的视图助手而不是Zend.
代表我的班级额外资讯的代码段: // file /library/My/View/Helper/Navigation/Menu.php class My_View_Helper_Navigation_Menu extends Zend_View_Helper_Navigation_Menu { protected function _renderDeepestMenu(Zend_Navigation_Container $container,$ulClass,$indent,$minDepth,$maxDepth) { // modified code here } protected function _renderMenu(Zend_Navigation_Container $container,$maxDepth,$onlyActive) { // modified code here } } 编辑澄清 我想更改< li>元素并删除EOL和缩进.菜单视图脚本没有任何选择,这就是为什么我必须扩展它. 在Bootstrap中初始化导航对象: $navTable = new Default_Model_Site_DbTable_Navigation(); $view = $this->getResource('view'); $view->navigation(new Zend_Navigation($navTable->getNavigation())); 在我的布局中渲染菜单: echo $this->navigation()->menu(); 解 我通过重命名如下所示的工作,但我不清楚为什么我不能重载/覆盖_Menu类和menu()函数. >将类名更改为My_View_Helper_Navigation_MyMenu 类线框: // file /library/My/View/Helper/Navigation/MyMenu.php class My_View_Helper_Navigation_MyMenu extends Zend_View_Helper_Navigation_Menu { public function myMenu(Zend_Navigation_Container $container = null) { return parent::menu($container); } protected function _renderDeepestMenu(Zend_Navigation_Container $container,$onlyActive) { // modified code here } } $view->addHelperPath( APPLICATION_ROOT . '/library/MyApp/View/Helper/Navigation','MyApp_View_Helper_' ); echo $this->navigation()->myMenu(); // name of your class 从:Getting Zend_Navigation menu to work with jQuery’s Fisheye 编辑 对不起,我没有看到你的解决方案,这正是我发布的. 但是,为什么这不是菜单类的延伸? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |