Codeigniter урок 21. как сделать подсветку пункта рейтинг фильмов?
0
Добрый вечер! Сделал страницу с рейтингом, но никак не могу решить проблему с тем, что когда я перехожу на вкладку "Рейтинг фильмов" у меня выделяются "рейтинг фильмов" и "фильмы" одновременно. Кто как решал данную проблему?
роуты:
$route['default_controller'] = 'main';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
$route['movies/(:any)'] = 'movies/view/$1';
$route['movies/type/films'] = 'movies/type/films/$1';
$route['movies/type/serials'] = 'movies/type/serials/$1';
$route['movies/rating/films'] = 'movies/rating/films/$1';
$route['news'] = 'news';
$route['news/create'] = 'news/create';
$route['news/edit'] = 'news/edit';
$route['news/delete'] = 'news/delete';
$route['news/(:any)'] = 'news/veiw/$1';
$route['posts'] = 'posts';
$route['posts/create'] = 'posts/create';
$route['posts/edit'] = 'posts/edit';
$route['posts/delete'] = 'posts/delete';
$route['posts/(:any)'] = 'posts/veiw/$1';
Хелпер(в комментарии условие для рейтинга):
<?php
if(!function_exists("show_active_menu")) {
function show_active_menu($slug){
$ci = & get_instance();
$result = "";
if($ci->uri->segment(1, 0) === $slug){
$result = "class='active'";
}
if($ci->uri->segment(3, 0) === $slug){
$result = "class='active'";
}
/* if($ci->uri->segment(2, 0) === 'rating'){
$result = "class='active'";
}*/
if($slug === 'films' && $ci->uri->segment(1, 0) === 'movies' && $ci->uri->segment(2, 0) === 'view'){
$result = "class='active'";
}
return $result;
}
хедер:
<ul class="nav nav-pills">
<li <?php echo show_active_menu(0); ?> > <a href="/">Главная</a></li>
<li <?php echo show_active_menu('films'); ?> ><a href="/movies/type/films/">Фильмы</a></li>
<li <?php echo show_active_menu('serials'); ?> ><a href="/movies/type/serials/">Сериалы</a></li>
<li <?php echo show_active_menu('rating'); ?> ><a href="/movies/rating/films">Рейтинг фильмов</a></li>
<li <?php echo show_active_menu('contact'); ?> ><a href="contact.html">Контакты</a></li>
1 ответов
1
Проблема решена. Как и говорилось в уроке, нужно сделать всё элегантнее:)
if(!function_exists("show_active_menu")) {
function show_active_menu($slug){
$ci = & get_instance();
$result = "";
if($ci->uri->segment(1, 0) === $slug){
$result = "class='active'";
}
if($slug === 'films' && $ci->uri->segment(3, 0) === 'films' && $ci->uri->segment(2, 0) === 'type'){
$result = "class='active'";
}
if($slug === 'serials' && $ci->uri->segment(3, 0) === 'serials' && $ci->uri->segment(2, 0) === 'type'){
$result = "class='active'";
}
if($slug === 'rating' && $ci->uri->segment(1, 0) === 'movies' && $ci->uri->segment(2, 0) === 'rating'){
$result = "class='active'";
}
if($slug === 'films' && $ci->uri->segment(1, 0) === 'movies' && $ci->uri->segment(2, 0) === 'view'){
$result = "class='active'";
}
return $result;
}