这是我目前的情况:
我有一个 xml 来配置我的常规导航结构。在应用程序/引导程序中.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
}
}
我想在运行时修改我的导航。我想添加特定于模块的导航项。
我不知道如何从模块中移动导航结构。
希望你能帮助我。
麦克斯
为了完成同样的事情,我使用和反对我创建的来构建菜单。 你可以在这里找到我使用的代码:http://pastebin.com/FzChbVeV。 我还使用助手来检查是否允许用户查看链接。 您可以删除第 102 到 109 行,如果不想使用它,可以编辑第 111 行。
之后,在我的模块的引导.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();