2

试图在 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) 之类的

任何的想法?谢谢

4

1 回答 1

1

这里有几件事......

首先,要显示导航,请使用适当的助手。在您的布局文件中...

<?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) ?>
于 2011-10-26T00:22:33.800 回答