Joomla + Virtuemart 2
модуль mod_virtuemart_category (который выводит список категорий).
Отображаемая структура категорий:
-категория 1
--подкатегория 1
--подкатегория 2
-категория 2
-- ....
-....
подкатегории содержат еще несколько уровней вложенных подкатегорий.
Проблема заключается в том, что при переходе в подкатегорию она не подсвечивается никаким образом. Это будет негативно сказываться на юзабилити магазина: покупатель не видит где он находится. (Хлебные крошки не в счёт).
Пример:
Решение пришло с помощью костыля на javascript:
<script type="text/javascript">
var Link = document.URL;
var Link2='';
var k=0;
Link=Link.replace("http://ваш.домен", "");
for(var i=0; i<Link.length; i++){
if (Link[i]=='/') {k++;}
if (k<6) {Link2=Link2+Link[i];}
}
var a = document.getElementsByTagName('a');
for(var i=0; i<a.length; i++){
var b = a[i].getAttribute('href');
var c = a[i].getAttribute('class'); if(!c) c='';
if(b==Link2)a[i].setAttribute('class',c+' art_active')
}
</script>
добавляем его в конец файла default.php (/modules/mod_virtuemart_category/tmpl/)
так же добавляем класс в стили:
.art_active{
font-weight: bold;
}
Результат:
что делает яваскрипт:
1. получает текущий урл где Вы находитесь.
2. преобразует урл в относительный путем удаления из строчки названия вашего домена:
http://ваш.домен/index.php/shop/katalog/kategorija1/podkategorija1
3. так как стоит задача "подсвечивать" ссылку на активную подкатегорию не выше 2го уровня вложенности, то берем только нужную часть урл. (Считаю по количеству вхождений "/")
/index.php/shop/katalog/kategorija1/podkategorija1/podpodkategorija1
4. добавляем класс art_active тем ссылкам, которые содержат полученный нами в предыдущих шагах урл
таким образом решили задачу выделения активной ссылки для virtuemart 2