Add active class to menu in codeigniter.
Add active class to menu in codeigniter.
md
Last active 3 years ago • Report abuse
activelink_codeigniter.md
In codeigniter, it’s very easy to add active class to the current menu in menu item.
$this->load->helper('menu');
Step 3 :-. Add class to your menu. pass your controller name in activate_menu()
method.
<li class="<?php echo activate_menu('home'); ?>"><a href="<?php echo site_url();
<li class="<?php echo activate_menu('aboutus'); ?>"><a href="<?php echo site_url
this code is good but limited, its only looking a class not the method.
<?php
if(!function_exists("show_current_class")) {
function show_current_class($args = "",$class = "active") {
$route_obj = new CI_Router;
$get_page = $route_obj->method;
if($get_page == $args) {
echo $class;
}
}
}
?>
This is great! Thank you! I've modified it a bit here based upon the uri_string. Here you go:
return $ret_val;
}
but could not add active class without have href following line
please help
<aside>
<div id="sidebar" class="nav-collapse ">
<!-- sidebar menu start-->
<ul class="sidebar-menu" id="nav-accordion">
<li>
<a href="index.php">
<i class="icon-dashboard"></i>
<span>Dashboard</span>
</a>
</li>
<li class="sub-menu">
<a class="<?php echo show_current_class('Movies'); ?>"
href="i dont have any page for this">
<i class="icon-tasks"></i>
<span>Movies</span>
</a>
<ul class="sub">
<li class="<?php echo
show_current_class('addmovies'); ?>"><a href="addmovies">Add Movie</a></li>
<li class="<?php echo
show_current_class('movieslist'); ?>"><a href="movieslist">Movies List</a>
</li>
<li class="<?php echo
show_current_class('search_movie'); ?>"><a href="search_movie">Search
Movies</a></li>
</ul>
</li>
<li class="sub-menu">
<a href="javascript:;" class="<?php echo
show_current_class('home'); ?>">
<i class="icon-tasks"></i>
<span>Tv Shows</span>
</a>
<ul class="sub">
<li><a href="addmovies">Add Tv Show</a></li>
<li><a href="movieslist">Tv Shows List</a></li>
<li><a href="search_movie">Search Tv Shows</a>
</li>
</ul>
</li>
</ul>
<!--multi level menu end-->
<!-- sidebar menu end-->
</div>
</aside>
Thanks
<?php
if(!defined('BASEPATH')) exit('No direct script access allowed');
if(!function_exists('activate_menu')) {
function activate_menu($link, $css = "") {
if ( isset($_SESSION["link"]) ) {
$controller = $_SESSION["link"];
} else {
$controller = "inicio";
}
return ($controller == $link) ? "{$css} active" : $css;
unset($_SESSION["link"]);
}
}
?>
<?php
$this->session->set_flashdata("link", "name_of_menu_to_activate");
?>
In your menu boostrap
<php if(!function_exists('active_link')) {
function activate_menu($controller)
{
// Getting CI class instance.
$CI = get_instance();
// Getting router class to active.
$class = $CI->router->fetch_class();
$is_active = FALSE;
if(is_array($controller)) {
foreach ($controller as $cont){
if($cont == $class){
$is_active = TRUE;
}
}
}else{
if($controller == $class){
$is_active = TRUE;
}
}
<?=activate_menu('controller');?>
<?=activate_menu(['controller1', 'controller2']);?>
<php if(!function_exists('active_link')) {
function activate_menu($controller)
{
// Getting CI class instance.
$CI = get_instance();
// Getting router class to active.
$class = $CI->router->fetch_class();
$is_active = FALSE;
if(is_array($controller)) {
foreach ($controller as $cont){
if($cont == $class){
$is_active = TRUE;
}
}
}else{
if($controller == $class){
$is_active = TRUE;
}
}
<?=activate_menu('firma','firmaType');?>
hi i cant figure out why not working in codeigniter 4.0.2 can you help ?
Hi all,
I think it is most easy to track active link by current url with js. Check the following link
Sorry for my bad english.