Тема: Добавить свой класс каждому пункту меню категорий
Приветствую. Поделюсь способом как добавить каждому пункту меню категорий свой класс (class).
Нужно это для того, чтобы средствами CSS оформлять каждый пункт по разному и подставлять изображения для категорий не в виде файла jpg или png, а в виде иконки FontAwesome или SVG.
Первое, что нужно сделать, это открыть файл: Ваша_тема/moduleview/catalog/blocks/category/category.tpl
Второе - найти строку:
<li class="item_{$dir@iteration}{if !empty($dir.child)} node{/if}" {$dir.fields->getDebugAttributes()}><a href="{$dir.fields->getUrl()}">{$dir.fields.name}</a>
Третье - добавить после node{/if}
dir{$dir.fields.id}
Должно быть примерно так:
<li class="item_{$dir@iteration}{if !empty($dir.child)} node{/if} dir{$dir.fields.id}" {$dir.fields->getDebugAttributes()}><a href="{$dir.fields->getUrl()}">{$dir.fields.name}</a>
Сохранить и обновить кэш.
После этого к каждому пункту меню добавится класс - dir(id категории), например dir20, которому уже можно задавать свои стили в вашем файле CSS.
<li class="item_1 dir20">Моя категория</li>
Аналогично для подкатегорий:
находим строку:
<li><a href="{$subdir.fields->getUrl()}">{$subdir.fields.name}</a>
и добавляем к элементу li
<li class="subdir{$subdir.fields.id}">
и так далее в зависимости сколько у вас уровней подкатегорий в меню.
Способ конечно не идеальный, но на мой взгляд самый простой.
Делал так на нескольких сайтах, включая Bitrix... БИТРИКС.. Карл..
Тестировалось на теме "young" (Детская). Работает.