xsl "МагазинГруппыТоваровНаГлавной"

#
xsl "МагазинГруппыТоваровНаГлавной"
Подскажите как в данной xsl вывести товары категорий?
В макете вызываю xsl так


$shop_id = 1;
$Shop_Controller_Show = new Shop_Controller_Show(
             Core_Entity::factory('Shop', $shop_id)
          );
          $Shop_Controller_Show
             ->xsl(
                Core_Entity::factory('Xsl')->getByName('МагазинГруппыТоваровНаГлавной')
             )
             ->groupsMode('tree')
             ;

          $Shop_Controller_Show
          ->shopItems()
          ->queryBuilder()
           ->clearOrderBy()
           ->orderBy('RAND()');

          $Shop_Controller_Show->show();


в самой xsl вставил


<xsl:template match="shop_item">
....
</xsl:template>


и вызов

<xsl:apply-templates select="shop_item" />


реакции ноль))
Модератор
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
а товары то в XML разве есть? Добавьте контроллеру ->limit(5)
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
В админке товары есть, насчет есть ли товары в XML не знаю. Как правильно добавить? Я думал что как раз

$Shop_Controller_Show
   ->shopItems()


добавляет товары
Модератор
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
Как посмотреть XML: http://www.hostcms.ru/documentation/introduction/top-panel/xml/
Контроллеры: http://www.hostcms.ru/documentation/modules/core/controllers/

->shopItems() ничего не выводит, он позволяет получить доступ к QueryBuilder с настроенными условиями выборки для товаров, не более.
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
изменил запрос на

$Shop_Controller_Show = new Shop_Controller_Show(
                     Core_Entity::factory('Shop', $shop_id)
                  );
                  $Shop_Controller_Show
                     ->xsl(
                        Core_Entity::factory('Xsl')->getByName('МагазинГруппыТоваровНаГлавной')
                     )
                    
                     ->groupsMode('all')
                     ->group(FALSE)
                     ->limit(500);
                  $Shop_Controller_Show
                     ->shopItems()
                     ->queryBuilder()
                     ->clearOrderBy()
                     ->orderBy('shop_items.shop_group_id');
                  $Shop_Controller_Show->show();


Теперь xml имеет вид

<shop_group id="1">
...
</shop_group>
<shop_group id="2">
...
</shop_group>
<shop_group id="3">
...
</shop_group>
<shop_item id="165">
...
</shop_item>
<shop_item id="166">
...
</shop_item>


Подскажите как мне изменить запрос, чтобы товары были детьми своих категорий в xml?
Модератор
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
Запрос никак не изменить, т.к. запрос не влияет на структуру XML. С какой целью Вам такое действие? Вы просто в XML выбираете группы, а потом внутри группы выбираете товары из этой группы, это все очень просто.
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
В таком случае - можете подсказать или ткнуть в пример как в XSL "выбрать товары нужной группы". Я так понимаю, что-то наподобие того?

<xsl:apply-templates select="//shop_item[@shop_group=$group_id]" />
Модератор
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
sky_in_the_mirror,
могу предложить почитать документацию и описания работы с XSL, также прекратить писать код наугад. Например, откуда взялся атрибут @shop_group?

<xsl:apply-templates select="/shop/shop_item[shop_group_id=$group_id]" />

при этом выше в $group_id должен быть записан @id
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
Пренеприменно последую Вашему совету. Спасибо за помощь!
Модератор
#
Re: xsl "МагазинГруппыТоваровНаГлавной"
sky_in_the_mirror,
Пожалуйста
Авторизация