-1

我正在使用部分来装饰 Zend_Navigation 以获取所需的输出。一切都很好,除了我在添加标签时遇到class="active"困难<a href..>。这是我的部分布局sidebar.phtml

<ul id="menu" class="nav">
<?php foreach($this->container as $page): ?>
    <li class="<?php echo $page->class; ?>"><a href="<?php echo $page->getHref(); ?>"><span><?php echo $page->label; ?></span></a></li>
<?php endforeach; ?>
</ul>

<a href="<?php echo $page->getHref(); ?>">我想class="active"为当前页面添加。

我尝试了一些搜索后找到的解决方案。但没有什么对我有用。

例如,大多数解决方案都谈论在控制器中执行此操作

$page = $this->view->navigation()->findOneByLabel('Your Label');
if ( $page ) {
  $page->setActive();
}

我还没有测试过这个。因为我在一个navigation.xml文件的布局中使用多个导航。我想知道是否有办法可以在部分本身而不是在控制器或其他助手中做到这一点?

谢谢你

4

1 回答 1

1

这很简单。在部分视图中,您可以检查哪个页面处于活动状态:

if ($page->isActive()) { ... }

从采埃孚文档:

注意:注意在页面中使用路由属性时,还要指定路由定义的默认参数(模块、控制器、动作等),否则isActive()方法将无法判断页面是否活跃。这样做的原因是目前没有办法从 Zend_Controller_Router_Route_Interface 对象获取默认参数,也无法从 Zend_Controller_Router_Interface 对象检索当前路由。

于 2012-04-11T14:26:47.120 回答