我正在尝试添加一个CSS类"active"的列表项,通过检查用户是在哪个功能上,我使用codeigniter来构建一个CMS,并使用类名和函数来浏览网站
class Main extends CI_Controller {
public function index(){
// Get all Articles
$data['title'] = 'Latest Articles';
$data['main_content'] = 'main';
$this->load->view('layouts/main', $data);
}
public function article($slug) {
// Get Article details
$data['article'] = $this->Games_model->get_game_details($slug);
$data['title'] = $data['article']->title;
$data['main_content'] = 'article';
$this->load->view('layouts/main', $data);
}
}
我使用这个代码来创建一个类的主要,以便用户可以访问我的网站与此url "localhost/cms/main"
或"localhost/cms/"
我想通过检查我们在哪个函数上添加一个类
如果我们在"localhost/cms/"
上,我想添加一个类到home链接否则我想添加一个类到文章或任何函数我在
希望你明白我想说的话
有什么帮助吗?可以使用uri段和路由
在routes.php$route['main'] = 'main/index';
$route['article'] = 'main/article';
在
<a <?php echo ($this->uri->segment(1)=='main') ? 'class="active"':''; ?> href="<?php echo base_url('main'); ?>">Main</a>
<a <?php echo ($this->uri->segment(1)=='article') ? 'class="active"':''; ?> href="<?php echo base_url('article'); ?>">Articles</a>
要了解更多细节,请查看文档,对于路由,请点击这里,对于uri段,请点击这里
获取Codeigniter中类的名称
$this->router->fetch_class();
获取Codeigniter
中方法的名称$this->router->fetch_method();
如果我理解正确,您已经在$data['main_content']
中设置了活动页面,您应该能够在视图中执行以下操作(您的导航链接,或任何您想要的地方):
<a <?php echo $main_content=='main'?' class="active"':''?> href="your_main_url">Main</a>
<a <?php echo $main_content=='article'?' class="active"':''?> href="your_articles_url">Articles</a>
这基本上检查$data['main_content']
变量你已经设置并传递给视图在你的控制器,并打印class="active"
的活动页面。
正如Hearner已经评论的那样,您可以使用$data
数组来添加可以发送到模板的额外数据。在您的情况下,您也可以使用$data['main_content']
项来指定当前页面。
以这样的方式构建你的模板,菜单也是一个单独的模板,否则你需要在每个页面模板上为当前的活动页面做检查。
给大家举个例子:
// your navigation template file
<ul class="nav">
<li <?php echo ($main_content === 'main' ? 'class="active"' : '') ?>><a href="..">Main</a></li>
<li <?php echo ($main_content === 'article' ? 'class="active"' : '') ?>><a href="..">Acticles</a></li>
</ul>