Выпадающее меню продукции

#
Re: Выпадающее меню продукции
Dmitry K.,
Поправьте ТДС виджета:
if (Core::moduleIsActive('shop'))
{
    $shopId = Core_Array::get(Core_Page::instance()->widgetParams, 'shopId');
    $xsl = Core_Array::get(Core_Page::instance()->widgetParams, 'xsl');
    $Shop_Controller_Show = new Shop_Controller_Show(Core_Entity::factory('Shop', $shopId));

    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('current_group_id')
                ->value(Core_Page::instance()->object->group));
    }

    $Shop_Controller_Show
        ->xsl(Core_Entity::factory('Xsl')->getByName($xsl))
        ->groupsMode('all')
        ->limit(0)
        ->viewed(false)
        ->favorite(false)
        ->comparing(false)
        ->calculateTotal(false)
        ->show();
}

Если есть переход к группе ИМ то у вас в XML будет тег current_group_id со значением ИД группы
Далее проверяете в XSL
<a href="{url}">
            <xsl:if test="@id = /shop/current_group_id">
               <xsl:attribute name="class"> active </xsl:attribute>
            </xsl:if>
            <xsl:value-of select="name"/>
         </a>
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Активная группа в списке групп магазина
Наконец-то разобрался. Вот что надо было...
PHP код типовой динамической страницы
<?php
if (Core::moduleIsActive('shop')) {
   $xsl = Core_Array::get(Core_Page::instance()->widgetParams, 'xsl');
   $Shop_Controller_Show = new Shop_Controller_Show(Core_Entity::factory('Shop', Core_Page::instance()->libParams['shopId']));
   $Shop_Controller_Show->parseUrl();
   $Shop_Controller_Show
      ->addEntity(Core::factory('Core_Xml_Entity')
                        ->name('current_group_id')
                        ->value($Shop_Controller_Show->group));
   $Shop_Controller_Show
      ->xsl(Core_Entity::factory('Xsl')->getByName($xsl))
      ->groupsMode('tree')
      ->group(0)
      ->limit(0)
      ->show();
   }

Код XSL-шаблона
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:hostcms="http://www.hostcms.ru/" exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

<!-- Шаблон для магазина -->
<xsl:template match="/shop">
<h5 class="font-family-narrow text-uppercase">Мебель</h5>
<menu class="leftmenu"><xsl:apply-templates select="shop_group" /></menu>
</xsl:template>

<!-- Шаблон для групп товара -->
<xsl:template match="shop_group">
<a href="{url}">
<xsl:if test="@id = /shop/current_group_id">
<xsl:attribute name="class">active</xsl:attribute>
</xsl:if>
<xsl:value-of select="name" />
<span class="text-muted"><xsl:value-of disable-output-escaping="yes" select="items_count" /></span>
</a>
</xsl:template>

</xsl:stylesheet>

Помогла тема форума Активная группа на списке групп магазина - вот здесь было описание.
Seri тоже помог - натолкнул на умные мысли...
Авторизация