我有一个情况。在我的项目中,菜单部分包含一些锚标记,当我们在索引页面时它会完美地工作,但是移动到其他页面我想在那里给出真实的链接,所以我的问题是如何检查哪个页面正在查看或如何检查网站查看器不在索引页面
<li><a href="#home" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>
我想有条件地更改href
,例如当我在索引中时,上面的href
属性是正常的,当我在另一个页面中时,例如register,那么{{ 1}}属性更改为href
提前致谢
更新: 谢谢uttara,我在她的帮助下找到了解决方案
index.php/site/index#home
答案 0 :(得分:4)
您可以使用CMenu窗口小部件,它会处理高光,外观等。之后您可以使用自定义CSS。
<?php
$this->widget('zii.widgets.CMenu',array(
'items'=>array(
array('label'=>'Home', 'url'=> 'YOUR_URL#home'),
array('label'=>'About Us', 'url'=>'YOUR_URL#about_us)'
)
);
?>
答案 1 :(得分:1)
$url = $_SERVER["REQUEST_URI"];
$page = pathinfo($url);
$filename = $page['filename'];
$filename
会为您显示当前正在浏览的网页的名称
您可以查看
if($filename != 'index')
{
echo '<li><a href="index.php/site/index#home" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>';
}
else
{
echo '<li><a href="#home" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>';
}
记住$filename
只提供没有扩展名的文件名
答案 2 :(得分:0)
首先将id赋予锚标签,然后将条件设置为如下
<?php
// the php code
$flag=strpos('index.php',$_SERVER['PHP_SELF'])
{
?>
<script>
$(document).ready(function(){
$("#idofanchortg").attr('href','hrefyou want to add');
});
</script>
<?php } ?>
答案 3 :(得分:0)
您可以使用Yii提供的CMenu小部件 http://www.yiiframework.com/wiki/211/creating-a-css-driven-drop-down-menu-using-cmenu/
答案 4 :(得分:0)
首先,我更愿意将责任留在一个地方。
<li><a href="<?php echo $this->getHomeHrefLink(); ?>" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>
我更喜欢这种方式'couse code更干净。好。现在我们知道所有控制器都扩展了Controller类(/protected/components/Controller.php)。在这个地方我们可以添加
public function getHomeHrefLink() {
// when I'm in index page the href attribute is #home
// when I'm in register page the href attribute is index.php/site/index#home
}
所以来吧:我们可以通过$ this-&gt;操作(对于控制器名称)和$ this-&gt; action-&gt; id(对于操作名称)来了解我们的位置:
public function getHomeHrefLink() {
return $this->createUrl('index/site', array());
// when I'm in register page the href attribute is index.php/site/index#home
return '#home;
}