Zend Framework Sitemap and ACL



我像这样使用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();

最新更新