Как добавить активный класс в динамический список меню в codeigniter? - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу отобразить <li class = "active"> в моем текущем URL, когда я нажимаю на любое меню.

Вот что я пробовал:

<?php   
    $uri_string = $this->uri->uri_string();
    $id_user = $usr->id;
    $get_group = $this->db->get_where('users_groups', array('user_id'=> $id_user));
    $hasil = $get_group->result();
    foreach($hasil as $h)       
    if(isset($h->group_id)){
        $in_group = $this->ion_auth->in_group($h->group_id);
        if(isset($in_group)){
            $get_menu = $this->db->get_where('menu',array('parent_menu' => 0, 'menu_users_groups' => $h->group_id));
            $menu = $get_menu->result();
            foreach($menu as $m){
                $cekSub = $this->db->get_where('menu',array('parent_menu' => $m->id));                              
                if($cekSub->num_rows() > 0){                                        
                    echo '<li>';                                        
                    echo '                                  
                      <a href="javascript:void(0);" class="menu-toggle">
                        <i class="material-icons">'.$m->icon.'</i> <span>'.$m->menu_name.'</span>                                       
                      </a>
                      <ul class="ml-menu">
                        <li>';
                        foreach($cekSub->result() as $c)
                        echo anchor(''.$c->controller_link.'','<i class="material-icons">'.$c->icon.'</i><span> '.$c->menu_name.'</span>');
                        echo '</li>
                      </ul>       
                    </li>';
                } else {
                    echo '<li>';
                    echo anchor(''.$m->controller_link.'','<i class="material-icons">'.$m->icon.'</i><span> '.$m->menu_name.'</span>');
                    echo '</li>';
                }
            }
        }           
    }           
?>

Проблема в том, что если не в классе действующего URL, активный скрыт - просто отображается <li>.

Как это исправить?

1 Ответ

0 голосов
/ 24 сентября 2018

решено с помощью:

<?php 
                $getUri = $this->uri->uri_string();
                $id_user = $usr->id;
                $get_group = $this->db->get_where('users_groups', array('user_id'=> $id_user));
                $hasil = $get_group->result();
                foreach($hasil as $h)       
                if(isset($h->group_id)){
                    $in_group = $this->ion_auth->in_group($h->group_id);
                    if(isset($in_group)){       
                        $get_menu = $this->db->get_where('menu',array('parent_menu' => 0, 'menu_users_groups' => $h->group_id));
                        $menu = $get_menu->result();
                        foreach($menu as $m){
                            $cekSub = $this->db->get_where('menu',array('parent_menu' => $m->id));  
                            $getSub = $cekSub->result();

                            if($cekSub->num_rows() > 0){                                    
                                echo '<li';                     
                                    foreach($getSub as $c)
                                    if($c->controller_link==$getUri){echo ' class="active"';}
                                echo '>
                                  <a href="javascript:void(0);" class="menu-toggle">
                                    <i class="material-icons">'.$m->icon.'</i> <span>'.$m->menu_name.'</span>                                       
                                  </a>
                                  <ul class="ml-menu">
                                    <li>';
                                    foreach($getSub as $c)
                                    echo anchor(''.$c->controller_link.'','<i class="material-icons">'.$c->icon.'</i><span> '.$c->menu_name.'</span>');
                                    echo '</li>
                                  </ul>       
                                </li>';
                            } else {
                                echo '<li';
                                    if($m->controller_link==$getUri){echo ' class="active"';}
                                echo '>';
                                echo anchor(''.$m->controller_link.'','<i class="material-icons">'.$m->icon.'</i><span> '.$m->menu_name.'</span>');
                                echo '</li>';
                            }
                        }

                    }           
                }           
            ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...