我正在使用CakePHP构建一个投资组合网站,其导航如下:
<nav id="nav">
<ul>
<li><?php echo $html->link('Home', '/', array('title' => 'Home')); ?></li>
<li><?php echo $html->link('Portfolio', '/portfolio', array('title' => 'Portfolio')); ?>
<ul>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
<li><?php echo $html->link('Lorem ipsum dolor sit amet, consectetur adipisicing elit', '/portfolio', array('title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit')); ?></li>
</ul>
</li>
<li><?php echo $html->link('About me', '/about', array('title' => 'About me')); ?></li>
</ul>
</nav>
但是,当用户在该页面上或在其嵌套页面内时,我想向链接添加一个选定的类。因此,例如,如果他们在投资组合项目上,那么项目链接和投资组合将在class="selected"
上有<li>
。
有没有人用CakePHP做过这样的事情?感谢
答案 0 :(得分:1)
您可能希望在<li>
标记上添加id
属性,而不是向<body>
添加“已选定”类。对于可能不遵守严格,可预测的URL模式的特定部分中的页面,此解决方案将更容易级联。您可以为每个控制器设置默认值等。
此答案解释了如何轻松地将id
属性添加到CakePHP中的<body>
标记:Add to <body> tag of a cakePHP app
否则,会有一些菜单和导航视图助手浮动。我在这里找到了这个:http://www.solitechgmbh.com/2008/06/06/menu-highlighting-with-cakephp-12/
答案 1 :(得分:1)
这是CakePHP和“普通”html / php的组合,但它在我的CakePHP网站中适用于我。
<a href="/portfolio" <? if($this->params['controller'] == "portfolio")
echo 'class="selected"'; ?>>PORTFOLIO</a>
或者,如果您需要检查的不仅仅是控制器,还可以检查操作。
<a href="/pages/about" <? if($this->params['controller'] == "pages"
&& $this->params['action'] == "about")
echo 'class="selected"'; ?>>ABOUT</a>