[英]Zend_Navigation for displaying different menus in Layout
嘗試在ZF上打印出大約3個菜單。 目前,我什至無法解決問題。 不太確定發生了什么以及為什么沒有提到如何使它在手冊中起作用。
這是我的layout.phtml:
<body>
<?php echo $this->layout()->nav; ?>
<?php echo $this->layout()->content; ?>
</body>
不能完全確定這是否是我要創建導航的方式,但是我計划最終更改路線以進行本地化:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<nav>
<register>
<label>Register</label>
<controller>register</controller>
<action>index</action>
</register>
</nav>
</config>
我已經在我的引導程序中:
protected function _initNavigation()
{
// Navigation
$config = new Zend_Config_Xml(APPLICATION_PATH . '/configs/navigation.xml', 'nav');
$container = new Zend_Navigation($config);
}
只顯示內容...希望能夠具有不同的菜單類型,例如... show(topMenu),show(loggedinSideMenu)之類的東西
任何想法? 謝謝
這里有幾件事...
首先,要顯示導航,請使用適當的幫助器。 在您的布局文件中...
<?php echo $this->navigation()->menu()
->renderMenu($zendNavigationContainer) ?>
請參閱http://framework.zend.com/manual/en/zend.navigation.introduction.html和http://framework.zend.com/manual/en/zend.view.helpers.html#zend.view.helpers .initial.navigation
其次, Zend_Application
有一個用於導航的資源插件,但是它只能處理一個容器,對您沒有真正的幫助。 我會在您的Bootstrap方法中推薦類似的內容...
protected function _initNavigation()
{
// get config and create containers as before
// bootstrap layout resource and retrieve it
$this->bootstrap('layout');
$layout = $this->getResource('layout');
// add containers as layout properties
$layout->topMenu = $topMenuContainer;
$layout->loggedInSideMenu = $sideMenuContainer;
}
然后,在您的布局中
<!-- top menu -->
<?php echo $this->navigation()->menu()
->renderMenu($this->layout()->topMenu) ?>
<!-- side menu -->
<?php echo $this->navigation()->menu()
->renderMenu($this->layout()->loggedInSideMenu) ?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.