А, да тоже самое решение будет. Только одно условие добавится. Как я понимаю, группа (основная) она лежит в корне. Соответственно, у нее идентификатор родительской группы равен 0. И группу нам надо отображать обычным способом. А все нижележащие группы - так как описано здесь. Вот из этого и надо исходить.
Над условием
// если в текущей группе элементов нет, а в подгруппах есть
if ($count_groups['count_items'] == 0 && $count_groups['count_all_items'] > 0) {
вписываем вызов метода GetGroup() для текущей группы магаизна, id которой находится в $GLOBALS['shop_item_path']['group']. В результате вызова метода GetGroup() мы получим массив описывающий группу. В этом массиве мы проверяем элемент описывающий родительскую группу текущей группы (я, честно говоря, не помню наизусть как он называется, распечатайте этот массив, там сразу понятно будет) , и переходим к выполнение моего метода только в том случае, если идентификатор родительской группы больше 0.
Вот и все решение, в 2 строки кода:
// получим число групп и элементов в текущей группе и ее подгруппах.
// подробнее см. API
$count_groups = $shop->GetCountItemsAndGroups($GLOBALS['shop_item_path']['group'],
$current_shop_id);
$current_group_row = $shop->GetGroup($GLOBALS['shop_item_path']['group']);
if($current_group_row['элемент описывающий id род.группы, не помню название'] > 0)
// если в текущей группе элементов нет, а в подгруппах есть
if ($count_groups['count_items'] == 0 && $count_groups['count_all_items'] > 0) {