CodeIgniter:如何"突出显示"用户当前所在页面的链接?

anr*_*ots 6 html php codeigniter

CodeIgniter相当新,仍然掌握MVC方法.我只是想知道解决这个问题的最佳方法是什么:

我的导航栏突出显示当前活动的链接,如下所示:

<a href="index.hml" id="active">Index</a>
<a href="blog.hml">Blog</a>
Run Code Online (Sandbox Code Playgroud)

现在,当我去blog.html时,我希望id ="active"相应地转移.通常我会为每个链接分配一个变量,然后将其值设置为'id ="active'.不知怎的,我不认为这是最好的方法.有什么想法吗?

更新(2012年9月12日)自从问这个问题后,我转到Kohana并扩展了一个完全为此目的而创建的模块.现在,我需要做的就是在配置数组中指定我的菜单项,并突出显示自动发生.该模块在这里.

Pau*_*nis 7

对CI不具体,这只是对当前页面名称进行逻辑检查.

当您在CI中获取页面名称时,例如

$pageName = 'blog.html';
Run Code Online (Sandbox Code Playgroud)

然后你可以做以下事情

<a href="index.html" <?php echo $pageName == 'index.html' ? 'id="active"' : ''; ?>>Index</a>
<a href="blog.html" <?php echo $pageName == 'blog.html' ? 'id="active"' : ''; ?>>Blog</a>
Run Code Online (Sandbox Code Playgroud)


Ger*_*son 5

首先你不应该使用id作为那种东西,id是给页面上的每个DOM元素一个唯一的标识号,为什么,我们最好使用一个类.

Code Igniter提供了许多帮助器和类,它们成为我们的工具的一部分,可能您之前听说过"URL Segments".

$ this-> uri-> segment(n)

允许您检索特定的细分.其中n是您要检索的段号.细分从左到右编号.例如,如果您的完整网址是:

http://example.com/index.php/news/local/metro/crime_is_up

细分数字是这样的:

  1. 新闻
  2. 本地
  3. 地铁
  4. crime_is_up

http://codeigniter.com/user_guide/libraries/uri.html

您可以使用它来检索表示您实际在浏览器上显示的活动页面的当前URL段.