отдельный показ магазина, соответственно какие-либо данные о текущем элементе в этот блок вообще не передаются. Чтобы передать их, см.
http://www.hostcms.ru/documentation/modules/core/controllers/
Передача контроллеру структуры идентификатора текущего товара и группы
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Shop_Controller_Show')
{
$Shop_Controller_Show->addEntity(
Core::factory('Core_Xml_Entity')
->name('shop_group_id')
->value(intval(Core_Page::instance()->object->group))
)->addEntity(
Core::factory('Core_Xml_Entity')
->name('shop_item_id')
->value(intval(Core_Page::instance()->object->item))
);
}
Реализуем показ
if (Core::moduleIsActive('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', 123)
);
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Shop_Controller_Show')
{
/*$Shop_Controller_Show->addEntity(
Core::factory('Core_Xml_Entity')
->name('shop_group_id')
->value(intval(Core_Page::instance()->object->group))
)->addEntity(
Core::factory('Core_Xml_Entity')
->name('shop_item_id')
->value(intval(Core_Page::instance()->object->item))
);*/
$Shop_Controller_Show->group(intval(Core_Page::instance()->object->group));
}
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МенюИзГруппМагазина')
)
// Выбрать все группы
->groupsMode('all')
// Не выбирать товары
->limit(0)
->show();
}
идентификатор группы будет в
/shop/group (а если раскомментируете фрагмент выше, то будет также в /shop/shop_group_id, а идентификатор товара в /shop/shop_item_id)
Если меню строится на базе <li>, то будем добавлять класс current к текущей группы
<xsl:template match="shop_group">
<li>
<xsl:if test="/shop/group = @id">
<xsl:attribute name="class">current</xsl:attribute>
</xsl:if>
...
</li>
</xsl:template>