Я сам новичек, но сам только с этим мучался не знаю насколько корректно сделал, но вроде работает :)
Вот здесь у тебя по сути уже есть ID всех элемента:[CODE]$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DETAIL_PAGE_URL");[/CODE]Далее тебе надо их вытащить вот здесь:
[CODE]while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
$aMenuLinksExt[] = Array(
$arFields['NAME'],
$arFields['DETAIL_PAGE_URL'],
Array(
"ID" => $arFields["ID"]
),
Array(),
""
);
[/CODE]
Тут ты для всех вытаскиваешь ID, так же я вытаскивал для всех элементов родителькую секцию (IBLOCK_SECTION_ID) плюс уровень вложения (DEPTH_LEVEL)
Там у меня получилось что в одном месте одни данные получаю, в другом други и поэтому дальше я жесточайше говнокодить начал :)
В result_modifier от catalog, там записал $arResult в POST и тут в меню принял его и далее сравнил эти два массива и вывел текущий подраздел.
Я понимаю что это жесточайший говнокод, но пока до другого не додумался :)