I always use this CodeIgniter Helper for all of my CI projects to Highlight Current or active link in the menu bar.
How it works
The active_link()
function simply accept the name of a controller as a parameter and it will check if the current controller is equal to the the given string, if it is equal it will return the active string, otherwise empty string. To get an active controller this function is using CI’s router
class’s fetch_class()
method. i.e.$CI->router->fetch_class();
CI Nav Helper
Create a file in applications/helper
directory with nav_helper.php
name.copy and paste the code you find below
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if ( ! function_exists('active_link')) { function active_link($controller) { $CI = &get_instance(); $class = $CI->router->fetch_class(); return ($class == $controller) ? 'active' : ''; } } |
How to load:
To use this Helper function, you have to load it. you can load it with two methods, one is controller level/method level and another one is global level.
1 |
$this->load->helper('nav'); |
open the application/config/autoload.php
1 |
$autoload['helper'] = array('nav'); |
How to use it
1 2 3 4 |
<ul> <li class="<?php echo active_link('home'); ?>"><a href="<?php echo site_url('home'); ?>">Home</a></li> <li class="<?php echo active_link('about'); ?>"><a href="<?php echo site_url('about'); ?>">About</a></li> </ul> |
I hope you like this Post, Please feel free to comment below, your suggestion and problems if you face - we are here to solve your problems.
Very simple and no hassle. Thank you very much! It worked for me. Cheers.
This is almost magical 😉 thanks so much for thinking of this and sharing it.
cant works
Thanks man, its working in main menu level. For example I have 4 submenu under my main menu ( in admin side bar). Then when I click on the 2nd level sub menu then my main menu and this 2nd sub-menu should be in active. How can I achieve this? I mean this is working on controller level but what about function level? is there any suggestion?