Jump to content
Sign in to follow this  
Roma2016

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

Recommended Posts

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

Share this post


Link to post
Share on other sites
<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>

 

Share this post


Link to post
Share on other sites
В 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; не помогло.

 

 

 

Share this post


Link to post
Share on other sites
7 часов назад, Roma2016 сказал:

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

 

 

 

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

.activeCSS

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

Цитата

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

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

Share this post


Link to post
Share on other sites

Вот вариант, который сработал у меня в 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;
}

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

 

  • +1 1

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
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>

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.