0
我對zend很新,我想在我的網站的某些部分創建導航菜單 - 比方說,我有20頁,但我只是想創建一個包含5個項目的菜單,並且僅可顯示4個頁面。這可能是一個愚蠢的問題,但有沒有辦法讓它在我的控制器上,而不是自舉?我真的不能找到一個例子這個:(如何在網站的某些部分創建Zend_Navigation - ZF 1.11.11
我對zend很新,我想在我的網站的某些部分創建導航菜單 - 比方說,我有20頁,但我只是想創建一個包含5個項目的菜單,並且僅可顯示4個頁面。這可能是一個愚蠢的問題,但有沒有辦法讓它在我的控制器上,而不是自舉?我真的不能找到一個例子這個:(如何在網站的某些部分創建Zend_Navigation - ZF 1.11.11
也許一個視圖助手這樣,它可以在你想要的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語句顯示只在你想要顯示的頁面上。
希望這是有用的。
嗨理查德,謝謝你的示例代碼。我只是測試它,它真的很棒! – 2012-04-25 11:22:49