Контроллеры в клиентском разделе

Модератор
#
Re: Контроллеры в клиентском разделе
Показ товаров, у которых есть модификации со скидкой
         $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('none')
            ->group(FALSE)
            ->limit(3);

         $Shop_Controller_Show
            ->shopItems()
            ->queryBuilder()
            ->where('shop_items.id', '=', Core_QueryBuilder::select('shop_items.modification_id')
               ->from('shop_items')
               ->where('shop_items.modification_id', '!=', 0)
               ->where('shop_items.shop_id', '=', $shop_id)
               ->join('shop_item_discounts', 'shop_item_discounts.shop_item_id', '=', 'shop_items.id')
               ->join('shop_discounts', 'shop_discounts.id', '=', 'shop_item_discounts.shop_discount_id')
               ->where('shop_discounts.active', '=', 1)
               ->where('shop_discounts.start_datetime', '<', Core_Date::timestamp2sql(time()))
               ->where('shop_discounts.end_datetime', '>', Core_Date::timestamp2sql(time()))
               ->where('shop_discounts.deleted', '=', 0)
               ->limit(3)
            )
            ->clearOrderBy()
            ->orderBy('RAND()');

         $Shop_Controller_Show->show();
Модератор
#
Re: Контроллеры в клиентском разделе
Передача контроллеру структуры идентификатора текущего инфоэлемента и группы
<?php
$Structure_Controller_Show = new Structure_Controller_Show(
   Core_Entity::factory('Site', CURRENT_SITE));
$Structure_Controller_Show->xsl(Core_Entity::factory('Xsl')
   ->getByName('ЛевоеМеню')
)
->menu(3)
// Показывать группы информационных систем в меню
->showInformationsystemGroups(TRUE)
// Показывать элементы информационных систем в меню
->showInformationsystemItems(FALSE);

if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Informationsystem_Controller_Show')
{
   $Structure_Controller_Show->addEntity(
      Core::factory('Core_Xml_Entity')
         ->name('informationsystem_group_id')
         ->value(intval(Core_Page::instance()->object->group))
   )->addEntity(
      Core::factory('Core_Xml_Entity')
         ->name('informationsystem_item_id')
         ->value(intval(Core_Page::instance()->object->item))
   );
}


$Structure_Controller_Show->show();
?>
#
Re: Контроллеры в клиентском разделе
подскажите как выводить подгруппы активной группы интернет-магазина

в xsl раскомментил

         <!-- Если есть подгруппы -->
          <xsl:if test="shop_group">
            <ul class="left_menu gray_link gray" id="{@id}">
               <xsl:apply-templates select="shop_group"/>
            </ul>
         </xsl:if>

в шаблоне заменил

->groupsMode('all')


теперь отображаются подгруппы любых групп. надо ограничить вывод в xsl. подскажите как теперь external_propertys добавить при вызове контроллера?
#
Re: Контроллеры в клиентском разделе
Как передать, как они назывались по-старому, "external_propertys"? Добавить данные в xml?
Модератор
#
Re: Контроллеры в клиентском разделе
31gorod писал(а):
Как передать, как они назывались по-старому, «external_propertys»? Добавить данные в xml?
$Shop_Controller_Show->addEntity(
   Core::factory('Core_Xml_Entity')
      ->name('ТекущаяГруппа')->value($Shop_Controller_Show->group)
);
при этом можно использовать иерархию и к одному Core_Xml_Entity добавлять дочерние Core_Xml_Entity и т.д.
#
Re: Контроллеры в клиентском разделе
Отлично, спасибо!
А как можно получить текущую группу интернет магазина? В 5
#
Re: Контроллеры в клиентском разделе
Отлично, спасибо!
А как можно получить текущую группу интернет магазина? В 5й версии было так

$GLOBALS['shop_item_path']['group']
Модератор
#
Re: Контроллеры в клиентском разделе
31gorod,
второй ответ на этой же странице "Передача контроллеру структуры идентификатора текущего инфоэлемента и группы".
#
Re: Контроллеры в клиентском разделе
Как можно получить для каталога товаров информацию о количестве каждого товара в корзине?
Модератор
#
Re: Контроллеры в клиентском разделе
31gorod,
посмотрите начинку контроллера корзины Shop_Cart_Controller_Show, возьмите часть его и сделайте добавление текущих товаров из корзины обычному контроллеру магазина в типовой дин. странице магазина.
Авторизация