Приветствую. Поделюсь способом как добавить каждому пункту меню категорий свой класс (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}
Должно быть примерно так:
<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" (Детская). Работает.