2012-04-24 114 views
0

我对zend很新,我想在我的网站的某些部分创建导航菜单 - 比方说,我有20页,但我只是想创建一个包含5个项目的菜单,并且仅可显示4个页面。这可能是一个愚蠢的问题,但有没有办法让它在我的控制器上,而不是自举?我真的不能找到一个例子这个:(如何在网站的某些部分创建Zend_Navigation - ZF 1.11.11

回答

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); 

在视图助手,你需要改变获取所有只选择你想要的页面,并在视图脚本,你将需要包装的回声在if语句显示只在你想要显示的页面上。

希望这是有用的。

+0

嗨理查德,谢谢你的示例代码。我只是测试它,它真的很棒! – 2012-04-25 11:22:49

相关问题