2012-04-24 102 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

相關問題