如何在网站的某些部分创建Zend_Navigation - ZF 1.11.11

时间:2012-04-24 09:52:28

标签: zend-framework zend-navigation

我对zend很新,我想在我的网站的某些部分建立一个导航菜单 - 假设我有20个页面,但我只想创建一个包含5个项目的菜单,只能看到4个页面。这可能是一个愚蠢的问题但有没有办法在我的控制器上而不是在bootstrap中?我真的无法找到一个例子:(

1 个答案:

答案 0 :(得分:3)

也许是一个助手?通过这种方式,可以从您希望在其上显示的4个页面上的视图脚本中调用它:

<?php
class Default_View_Helper_ShortNav extends Zend_View_Helper_Abstract
{
  /**
   * Generate a Zend_Navigation object
   * @return Zend_Navigation
   */
  public function shortNav()
  {
    //psudo code
    $pages = array();
    $model = new Default_Model_Pages();
    $rows = $model->fetchAll();
    foreach($rows as $page)
    {
       $pages[] = array(
           'label' => $page->title,
           'module' => 'default',
           'controller' => 'index',
           'action' => 'page',
           'params' => array('page' => $page->slug),
           'containerClass' => 'page',
       );
    }
    $nav =new Zend_Navigation();
    $nav->addPage(
        array(
            'label' => 'Pages',
            'route' => 'index', //route name
            'params' => array(), //route parameters
            'pages' => $pages
        )
    );
    return $nav;
  }
}

在视图脚本中:

<?php
$nav   = $this->shortNav();
echo $this->navigation($nav);

在视图助手中,您需要更改fetch all以仅选择所需的页面,并且在视图脚本中,您需要将echo包装在if语句中以仅显示在您希望它显示的页面上

希望这很有用。