这是我目前的情况:
我有一个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
}
}
我想在运行时修改导航。我想添加模块特定的导航项。
我不知道导航结构如何从模块中进行mofify。
希望你能帮助我。
最高
答案 0 :(得分: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();