Сделал версию xsl шаблона для 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)
);
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МагазинГруппыТоваровНаГлавной')
);
$Current_Shop_Controller = Core_Page::instance()->object;
if (is_object($Current_Shop_Controller)
&& get_class($Current_Shop_Controller) == 'Shop_Controller_Show'
&& $Current_Shop_Controller->group)
{
$Shop_Controller_Show
->addEntity(
Core::factory('Core_Xml_Entity')
->name('ТекущаяГруппа')->value(intval($Current_Shop_Controller->group))
);
}
$Shop_Controller_Show
->groupsMode('all')
//->itemsForbiddenTags(array('text'))
->group(0)
->limit(0)
->show();
}
Код XSL для Host CMS 6:
-1
level-
sub
active
Получаем на выходе HTML:
-
http://www.hostcms.ru/" href="/shop/costume-jewellery/" title="Бижутерия" hostcms:id="593" hostcms:field="name" hostcms:entity="shop_group">Бижутерияa>
li>
-
http://www.hostcms.ru/" href="/shop/handmade/" title="Handmade" hostcms:id="592" hostcms:field="name" hostcms:entity="shop_group">Handmadea>
li>
-
http://www.hostcms.ru/" title="Для волос" hostcms:id="591" hostcms:field="name" hostcms:entity="shop_group">Для волосspan>
-
http://www.hostcms.ru/" href="/shop/for-the-hair/gum/" title="Резинки" hostcms:id="598" hostcms:field="name" hostcms:entity="shop_group">Резинкиa>
li>
-
http://www.hostcms.ru/" href="/shop/for-the-hair/barrettes/" title="Заколки" hostcms:id="599" hostcms:field="name" hostcms:entity="shop_group">Заколкиa>
li>
-
http://www.hostcms.ru/" href="/shop/for-the-hair/crabs/" title="Крабы" hostcms:id="600" hostcms:field="name" hostcms:entity="shop_group">Крабыa>
li>
-
http://www.hostcms.ru/" href="/shop/for-the-hair/combs/" title="Гребни" hostcms:id="601" hostcms:field="name" hostcms:entity="shop_group">Гребниa>
li>
ul>
li>
-
http://www.hostcms.ru/" href="/shop/accessories/" title="Аксессуары" hostcms:id="590" hostcms:field="name" hostcms:entity="shop_group">Аксессуарыa>
li>
ul>