Лично я решил в лоб, не парясь. В catalog.section в result_modifier в цикле получаю раздел (\CIBlockSection::GetByID) по IBLOCK_SECTION_ID. Далее, если в нем есть родительский раздел, то еще 1 запрос к \CIBlockSection::GetByID.
И после формирую url по 1-му разделу по CODE (/catalog/.$section(или $parentSection)['CODE'].'/'.$arItem['CODE'].'/');
Столкнулся с этим из-за того, что почему то, в sections.php не выводил раздел в url. Решение простое и в лоб и работает, когда мы точно знаем уровень вложенности разделов и уровень вложенности маленький ( в моем случае 2).
В ином случае, можно по IBLOCK_SECTION_ID получить полный список разделов через CIBlockSection::GetNavChain
Вариант с this - во первых он всегда берет выбранный класс, т.е.
.head_menu li ul, но не действует на родительский.
Я попробовал сделать, как вы и указали через parent, но в этом случае он просто берет класс ".head_menu .drop" и запиливает его вместо ".head_menu .active"
Лично я решил в лоб, не парясь. В catalog.section в result_modifier в цикле получаю раздел (\CIBlockSection::GetByID) по IBLOCK_SECTION_ID. Далее, если в нем есть родительский раздел, то еще 1 запрос к \CIBlockSection::GetByID.
И после формирую url по 1-му разделу по CODE (/catalog/.$section(или $parentSection)['CODE'].'/'.$arItem['CODE'].'/');
Столкнулся с этим из-за того, что почему то, в sections.php не выводил раздел в url. Решение простое и в лоб и работает, когда мы точно знаем уровень вложенности разделов и уровень вложенности маленький ( в моем случае 2).
В ином случае, можно по IBLOCK_SECTION_ID получить полный список разделов через CIBlockSection::GetNavChain