我像这样使用Zend Framework站点地图:
echo $this->view->navigation()->sitemap();
在控制器中。
除了一个问题外,它运行良好:
我有一个用于网络公共部分的大导航以及客户端部分导航。
问题是,对于ACL禁止客人进入的任何条目,有:
<url><loc>http://mywebsite.com/sitemap.xml/#</loc></url>
我怎样才能告诉站点地图不要打印被禁止的条目?在我当前的设置中,站点地图为ACL禁止的导航中的所有条目打印上面的行。
谢谢大卫
Zend Framework 2.0
导航视图帮助程序不知道服务管理器中的 ACL 中的任何内容。因此,您必须将 ACL 和当前角色传递给视图帮助程序。
这可以通过使用 AbstractNavigationHelper 的静态资源库在应用程序范围内完成。
use ZendNavigationServiceAbstractNavigationFactory;
AbstractNavigationHelper::setDefaultRole('your current role');
AbstractNavigationHelper::setDefaultAcl('ACL object');
或直接在调用视图帮助程序时。
echo $this->view->navigation()->sitemap()
->setRole('your current role')
->setAcl('ACL object')
->render();