簡體   English   中英

Zend_Navigation用於在布局中顯示不同的菜單

[英]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.htmlhttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM