0

这是我目前的情况:

我有一个 xml 来配置我的一般导航结构。在 application/Bootstrap.php 我添加了以下函数:

protected function _initViewHelpers()
{
    $this->bootstrap('layout');
    $oLayout = $this->getResource('layout');
    $oView = $oLayout->getView();
    $oNavContainerConfig = new Zend_Config_Xml(CONFIGPATH . 'navigation.xml', 'nav');
    $oNavigationContainer = new Zend_Navigation($oNavContainerConfig);

    $aCurrentRole = $this->_auth->getStorage()->read();
    @$oView->navigation($oNavigationContainer)->setAcl($this->_acl)->setRole($aCurrentRole->role);
}

这是我当前的插件:

class Discount_Plugin_Module extends Zend_Controller_Plugin_Abstract
{
    public function routeShutdown(Zend_Controller_Request_Abstract $oRequest)
    {
        // init all module view controller stuff
    }
}

我想在运行时修改我的导航。我想添加模块特定的导航项。

我不知道如何从模块中修改导航结构。

希望您能够帮助我。

最大限度

4

1 回答 1

1

为了完成同样的事情,我使用我创建的对象来构建菜单。您可以在此处找到我使用的代码:http: //pastebin.com/FzChbVeV。我还使用助手来检查是否允许用户查看链接。如果您不想使用它,您可以删除第 102 到 109 行并编辑第 111 行。

之后,在我的模块的 bootstrap.php 中,我添加以下代码来添加菜单项:

    $menu = ZARD_Object_Module_Multimodmenu::getInstance();

    $menu->id = 'submenuid';
    $menu->label = 'Submenu';
    $menu->module = 'default';
    $menu->controller = 'index';
    $menu->action = 'index';
    $menu->addItem();

    $menu->id = 'amenuitem';
    $menu->label = 'Menu Item';
    $menu->module = 'modulename';
    $menu->controller = 'controllername';
    $menu->action = 'actionname';
    $menu->parent = 'submenuid';
    $menu->addItem();

之后,我在布局中加载菜单:

    $menu = ZARD_Object_Module_Multimodmenu::getInstance();
    echo $menu->getMenu();
于 2012-06-27T13:31:28.230 回答