Как правильно подключить XSL шаблон

#
Как правильно подключить XSL шаблон
Цитата:
<?php
         $Shop_Controller_Show = new Shop_Controller_Show(
            Core_Entity::factory('Shop', 1)
         );

         $Shop_Controller_Show->xsl(Core_Entity::factory('Xsl'->getByName('Слайды')
            ->groupsMode('all'
            ->group(FALSE);


         $Shop_Controller_Show
            ->shopItems()
            ->queryBuilder()
            ->where('shop_items.active', '=', 1);

         $Shop_Controller_Show->show();
               ?>


Формируется xml, в котором есть группы товаров. Не могу добиться, что бы в xml были так же и все товары.
Модератор
#
Re: Как правильно подключить XSL шаблон
banlit,
Правильно, limit для товаров не указан и считается равным нулю. Укажите заранее намного большее значение, если нужны все товары, например,
->limit(999)
#
Re: Как правильно подключить XSL шаблон
Да, спасибо. Что-то я этот момент упустил.
Модератор
#
Re: Как правильно подключить XSL шаблон
Пожалуйста.
#
Re: Как правильно подключить XSL шаблон
Цитата:
      <?php
         $Shop_Controller_Show = new Shop_Controller_Show(
            Core_Entity::factory('Shop', 1)
         );

         $Shop_Controller_Show->xsl(Core_Entity::factory('Xsl'->getByName('Слайды')
            ->groupsMode('tree'
            ->group(FALSE)
                                ->limit(999);

         $Shop_Controller_Show
            ->shopItems()
            ->queryBuilder()
            ->select('shop_items.*'
            ->where('shop_items.active', '=', 1)
                                ->clearOrderBy()
            ->orderBy('RAND()';

         $Shop_Controller_Show->show();
               ?>


Пожалуйста, подскажите как допилить код, что формировался XML такого вида:

Если мы не находимся в какой-либо категории магазина, то в XML есть данные только по группам.

Если мы находимся в какой-либо категории товаров(не group = 0), то в XML пишутся данные по товарам из этой текущей категории.

Спасибо.
Модератор
#
Re: Как правильно подключить XSL шаблон
banlit,
а сейчас у Вас не так работает? Зачем Вы явно дописали
->select('shop_items.*')
?
#
Re: Как правильно подключить XSL шаблон
Здесь почти все нормально, кроме тега <group>0</group> в XML, в какой бы категории я бы не находился у меня <group>0</group>, плюс выводятся все товары магазина, а мне нужен идентификатор категории текущей и товары из этой текущей категории.

Я так понимаю в приведенный выше код надо добавить определение текущей категории и добавлять её id в ->group($id) , вот в этом я и не могу разобраться.

Если в ->group($id) явно забить номер категории, то все нормально получается, осталось только автоматически определять id категории магазина и подставлять ее сюда ->group($id).

Как это правиль сделать? Помогите, пожалуйста.
Модератор
#
Re: Как правильно подключить XSL шаблон
banlit писал(а):
Здесь почти все нормально, кроме тега <group>0</group> в XML, в какой бы категории я бы не находился у меня <group>0</group>, плюс выводятся все товары магазина, а мне нужен идентификатор категории текущей и товары из этой текущей категории.

Так он и будет 0, ведь Вы указываете ->group(FALSE)
Уточните, Вы выводите этот код на странице, где уже типовой динамической от 6-й версии выводится обычным способом магазин?
#
Re: Как правильно подключить XSL шаблон
Ну если поставить ->group(TRUE), то товары вообще не будут выводится.

Да, вывожу на всех практически страницах,в том числе и на типовой динамической для магазина 6-ой версии.
Модератор
#
Re: Как правильно подключить XSL шаблон
Тогда будет примерно так:
<?php
$Shop_Controller_Show = new Shop_Controller_Show(
   Core_Entity::factory('Shop', 1)
);

$Shop_Controller_Show->xsl(Core_Entity::factory('Xsl')->getByName('Слайды'))
   ->groupsMode('tree')
   //->group(FALSE)
   ->limit(999);

// Если находимся на динамической странице и объект контроллера Shop_Controller_Show
if (is_object(Core_Page::instance()->object)
   && get_class(Core_Page::instance()->object) == 'Shop_Controller_Show'
   && Core_Page::instance()->object->group)
{
   $Shop_Controller_Show->group(
      Core_Page::instance()->object->group
   );
}

   
$Shop_Controller_Show
   ->shopItems()
   ->queryBuilder()
   //->select('shop_items.*')
   ->where('shop_items.active', '=', 1)
   ->clearOrderBy()
   ->orderBy('RAND()');

$Shop_Controller_Show->show();
?>
Авторизация