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