1

我这里有个情况。在我的项目中,菜单部分包含一些锚标签,当我们在索引页面中时它会完美工作,但是移动到其他页面我想在那里提供真正的链接,所以我的问题是如何检查正在查看的页面或如何检查站点查看器不在索引页面中

<li><a href="#home" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>

我想href有条件地改变,例如当我在索引时上面的href属性是好的,当我在另一个页面时,例如注册,那么href属性改变为index.php/site/index#home

提前致谢

更新: 谢谢uttara,我在她的帮助下找到了解决方案

<?php
$url = $_SERVER["REQUEST_URI"];
$page = pathinfo($url);
$filename = $page['filename'];
$href = ($filename=='root_directory' || $filename=='index'  || $filename=='site')?'':Yii::app()->request->baseUrl;
?>
<a href="<?php echo $href ; ?>#home" class="active">Home</a>
4

5 回答 5

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)'
        )
       ); 
?>
于 2012-05-30T07:32:24.887 回答
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只给你没有扩展名的文件名

于 2012-05-30T07:30:19.910 回答
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 } ?>
于 2012-05-30T07:34:29.710 回答
0

您可以使用 Yii http://www.yiiframework.com/wiki/211/creating-a-css-driven-drop-down-menu-using-cmenu/提供的 CMenu 小部件

于 2012-05-30T07:36:12.670 回答
0

首先,我更愿意将责任留在一个地方。

<li><a href="<?php echo $this->getHomeHrefLink(); ?>" class="active">Home</a></li>
<li><a href="#about_us">About Us</a></li>

我更喜欢这种方式,因为代码更干净。好。现在我们知道我们所有的控制器都扩展了 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->action(用于控制器名称)和 $this->action->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;
}
于 2012-05-30T09:21:49.610 回答