Roma2016

Выделить активную категорию в горизонтальном меню ОС 2.3

Рекомендуемые сообщения

Roma2016    0

По умолчанию в ОС 2.3 не выделяется активная родительская категория в горизонтальном меню. Как сделать ее активной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Pascha    647
<script type="text/javascript">
jQuery(document).ready(function($) {
var url=document.location.href;
$.each($("#menu a"),function(){
if(this.href==url){$(this).addClass('activeCSS');};
});
})(jQuery);
</script>
<style>
.activeCSS {
Font-weight:bold;
}
</style>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Roma2016    0
В 12.02.2017 в 16:31, Pascha сказал:

<script type="text/javascript">
jQuery(document).ready(function($) {
var url=document.location.href;
$.each($("#menu a"),function(){
if(this.href==url){$(this).addClass('activeCSS');};
});
})(jQuery);
</script>
<style>
.activeCSS {
Font-weight:bold;
}
</style>

 

Попробовал, работает. Но выделяет только жирным ссылку. Хотелось бы и фон активной категории сделать другого цвета. Пробовал добавить background: #ff0000; не помогло.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Pascha    647
7 часов назад, Roma2016 сказал:

Попробовал, работает. Но выделяет только жирным ссылку. Хотелось бы и фон активной категории сделать другого цвета. Пробовал добавить background: #ff0000; не помогло.

 

 

 

ок... идем за подробностями))) 
что есть 

.activeCSS

?
стиль ссылки вида <a class="activeCSS" (это легко посмотреть в фиребуг в браузере)
то есть чтоб присвоить им фон, кроме самого фона, следовало бы указать паддинги (отступы) и фон появиться... но стоит ли так делать? - хозяин барин...потому как есть еще

Цитата

<li><a class="activeCSS" href="....." ></a></li>

то есть присутствует элемент <li>  </li>.. в котором находится активная ссылка...
итак... подумайте какой стиль и  в каком виде его стоит написать...чтоб фон данного элемента закрашивался не только при наведении, но и когда в нем присутствует активная ссылка 
на самом деле решение на поверхности))) 
p.s. не посчитайте что я издеваюсь... нет...просто пытаюсь натолкнуть вас... чтоб вы сами понимали, что прописывается и зачем... тупой копипаст не всегда (почти всегда) не приемлем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vadim    3

Вот вариант, который сработал у меня в ocStore 2.1.0.2.1:

в файле catalog\controller\common\header.php

после

$categories = $this->model_catalog_category->getCategories(0);

вставить

if (isset($this->request->get['path'])) {
            $parts = explode('_', (string)$this->request->get['path']);
        } else {
            $parts = array();
        }

        if (isset($parts[0])) {
            $data['category_id'] = $parts[0];
        } else {
            $data['category_id'] = 0;
        }

        if (isset($parts[1])) {
            $data['child_id'] = $parts[1];
        } else {
            $data['child_id'] = 0;
        }

в том же файле после

$children_data[] = array(

вставить

'category_id'     => $child['category_id'], 

и после

$data['categories'][] = array(

вставить

'category_id'     => $category['category_id'],

в файле шаблона catalog\view\theme\default\template\common\header.tpl

заменить строчку

<li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>

на

<li class="dropdown <?php echo ($category['category_id'] == $category_id) ? 'active' : ''; ?>"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>

там же чуть ниже эту

<li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>

заменить на такую

<li <?php echo ($child['category_id'] == $child_id) ? 'class="active"' : ''; ?>><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>

и еще ниже эту:

<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>

меняем на такую

<li <?php echo ($category['category_id'] == $category_id) ? 'class="active"' : ''; ?>><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>

И теперь в стилях шаблона catalog\view\theme\default\stylesheet\stylesheet.css добавить стиль по вкусу, например так:

#menu .nav li.active {
    background-color: #FF0000;
}
#menu .nav li.active a{  
	color:#fff;
}

Цвета ставьте свои.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
vadim    3

Теперь бы понять как выделить остальные ссылки в меню. например контакты и т.д.

Есть идеи у кого нибудь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alexstorm    10
On 13.03.2017 at 2:31 PM, vadim said:

Теперь бы понять как выделить остальные ссылки в меню. например контакты и т.д.

Есть идеи у кого нибудь?

 

Указать в header.php

if(isset($this->request->get['route']) && ($this->request->get['route']  == 'information/contact')) {
    $data['contact_active'] = 'active';
 }else{
    $data['contact_active'] = '';
}

В header.tpl

<li <?php if($contact_active){ ?>class="<?php echo $contact_active; ?>"<?php } ?>><a href="<?php echo $contact; ?>"><?php echo $text_contact; ?></a></li>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу