php – CodeIgniter中的当前URI段

前端之家收集整理的这篇文章主要介绍了php – CodeIgniter中的当前URI段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在CodeIgniter视图中检查当前URI段的最佳方法是什么?我想要做的是使用当前的URI段[即$this-> uri-> segment(1)]以突出显示导航栏上的当前页面.

我想到的最好的事情就是去做

$data['current_uri'] = $this->uri->segment(1);
$this->load->view('header',$data);

在我的每个控制器中,然后在header.PHP文件中,我检查$current_uri变量以确定应该突出显示导航的哪个部分.如你所知,这是一种非常繁琐的方式,但我却失去了一种更好的方法.

甚至可以扩展默认的Controller类来传递当前的URI段,但我不确定这是否可行,甚至不知道如何去做.

我自己使用类似于anchor()的额外函数.我称之为active_anchor(),它采用所有相同的参数加上另一个(uri).如果传递的uri字符串与active_anchor()url参数匹配,则函数会将类添加为“active”.

然后函数使用锚函数返回(函数所做的就是确定链接是否需要类’active’.

编辑:

我把这段代码放在一个名为’MY_url_helper.PHP’的文件中.这样,当url helper被加载时(我实际上是自动加载那个,因为我的几乎所有视图都使用它.)这只是一些快速代码,非常确定它会起作用.基本上它使用与anchor()函数相同的参数,但也使用$key变量.如果key和url匹配,它会向anchor标记添加一个“active”类.

<?PHP  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if ( ! function_exists('active_anchor'))
{
    function active_anchor($url = NULL,$title = NULL,$key = NULL,$params = array())
    {
        if ($url && $key)
        {
            if($key == $url)
            {
                if (array_key_exists ('class',$params))
                {
                    $params['class'] .= ' active';
                }
                else
                {
                    $params['class'] = 'active';
                }
            }
        }
        return anchor($url,$title,$params);
    }
}

猜你在找的PHP相关文章