Как вывести товары нужной категории на главной?

#
Как вывести товары нужной категории на главной?
Вывожу на главной странице так, для категории 595. У группы есть подгруппы.

<?php
        // Разделы магазина
        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('ТоварыНаГлавной')
                )
                ->groupsMode('none')
                //->itemsForbiddenTags(array('text'))
                ->group(595)
                ->itemsProperties(TRUE)
                ->limit(9)
                ->modifications(false)
                ->forbidSelectModifications()
                ->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="/">
      <xsl:apply-templates select="/shop"/>
   </xsl:template>

   <xsl:template match="/shop">
      <xsl:variable name="group" select="group"/>
      <div class="slide-items">
         <xsl:apply-templates select="//shop_item" />
      </div>
      <xsl:value-of select="$group"/>
   </xsl:template>

   <xsl:template match="shop_item">
      <!-- ITEM -->
      <div class="col-md-3">
         <div class="item">
            <div style="background: url('{dir}{image_large}');" class="item-image"></div>
            <div class="add-cart"><a href="{/shop/url}cart/?add={@id}" onclick="return $.addIntoCart('{/shop/url}cart/', {@id}, 1)"><i class="fas fa-shopping-cart fa-2x"></i></a></div>
            <h3><a href="{url}"><xsl:value-of select="name"/></a></h3>
            <div class="description">
               <p><xsl:value-of select="property_value[tag_name='size']/value"/></p>
               <p><xsl:value-of select="property_value[tag_name='color']/value"/></p>
            </div>
         </div>
      </div>
      <!-- END ITEM -->
   </xsl:template>

</xsl:stylesheet>
theme.su - готовые сайты для HostCMS
Модератор
#
Re: Как вывести товары нужной категории на главной?
зачем //shop_item? Намного быстроее в данном случае просто
<xsl:apply-templates select="shop_item" />


в остально в чем ваш вопрос?
#
Re: Как вывести товары нужной категории на главной?
hostcms писал(а):
в остально в чем ваш вопрос?

у меня есть в магазине группы и подгруппы, в которых есть товары.
мне нужно выводить просто все товары той группы, которую я передал, например 594. Даже если эти товары лежат в подгруппе.
Но у меня в данный  момент пустота.

Пример, у меня есть такая стуктура в магазине:
Группа 1
- Подгруппа 1.1
   - - Товар подгруппы 1.1
Группа 2
- Подгруппа 2.1
   - - Первый Товар подгруппы 2.1
   - - Второй Товар подгруппы 2.1

И мне нужно вывести все товары группы 2. Не смотря на то, что они лежат в подгруппе. Как я делаю сейчас, так не работает. Даже с учетом вашего замечания.
theme.su - готовые сайты для HostCMS
Модератор
#
Re: Как вывести товары нужной категории на главной?
theme.su,
на самом деле вы вопрос очень упростили. Есть группа и есть товары в ней, обязательств вдруг в данной выборке появиться товарам из подгрупп нет совершенно. Таким образом если мы выбираем корневую группу, в ней должны выводиться все товары из подгрупп? – нет.

В документации есть готовый пример: https://www.hostcms.ru/documentation/modules/shop/frontend/show-subitems/
#
Re: Как вывести товары нужной категории на главной?
hostcms писал(а):
в остально в чем ваш вопрос?

Как это сделать на главной странице? Ведь мы изменяем ТДС у интернет-магазина
theme.su - готовые сайты для HostCMS
Модератор
#
Re: Как вывести товары нужной категории на главной?
theme.su,
объявляете класс в макете и затем его используете, ТДС здесь не при чем. Проще класс не объявлять прямо в макете, а разместить его в файле, структуру файлов см. https://www.hostcms.ru/documentation/modules/additional/filesystem/ (самый конец статьи)
Авторизация