В результате я сделал версию для Host CMS 6.
Следующий код выводит группы магазина, при этом вложенные группы отображаются только у текущей группы.
Вывод подгрупп до любого уровня вложенности - основанно на коде от html Улучшения для стилизации
Для вложенных сприсков ul через CSS класс указывается уровень вложенностьиlevel-1, level-2 и т.д.
Для текущего элемента li устанавливается CSS класс active, и если есть подгруппы - добавляется класс sub.
CSS классы могут быть использованны для улучшения вида дерева, например, можно специальным знаком помечать группы с подгруппами, чтобы было понятно - этот пункт меню можно развернуть. Вы можете настроить отображение каждого уровня меню в отдельностьи, используя стили для level-1..level-n.
В код основного шаблона добавить вставку в xml узла /shop/ТекущаяГруппа.
Добавть в шаблон в месте вывода групп код
// Разделы магазина
if (Core::moduleIsActive('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', 1)
);
$Current_Shop_Controller = Core_Page::instance()->object; // текущий объект данных
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МагазинГруппыТоваровНаГлавной')
)
->addEntity( // добваим ID текущей группы
Core::factory('Core_Xml_Entity')
->name('ТекущаяГруппа')->value($Current_Shop_Controller->group)
)
->groupsMode('all') // включите вывод всех групп
//->itemsForbiddenTags(array('text'))
->group(0)
->limit(0)
->show();
}
Оказалось Core_Page::instance()->object не всегда заполнен, потому на страницах без товаров в выводе меню возникала ошибка попытки доступа к свойству у не объекта.
Я вставил код проверок и разместил новый вариант у себя в журнале для дальнейшей доработки, если еще пробемы будут.
Можете поподробнее объяснить про "В код основного шаблона добавить вставку в xml узла /shop/ТекущаяГруппа."?? Непонятен этот момент. Я новичок в Hostcms.
Отличная доработка.
Но есть один вопрос.
В данном примере на сайт попадают подразделы именно активного раздела. А как быть если меню сдлано в виде аккордиона?
Тоесть нужно выводить все подразделы, а не только активный раздел