====== Вычисление минимальной цены для группы товаров ======
Вызываем метод:
''$Shop_Controller_Show->addMinMaxPrice();''
Получаем в XML:
''2700
3200''
Решение ниже устарело.
===== Устарело!!! =====
Вычисление минимальной цены товаров в группе товаров, включая дочерние группы.
**Установка:**
Помещаем в ТДС нижеприведенный код перед вызовом $Shop_Controller_Show->show();
//получаем минимальную цену товара для каждой группы
//id Родительской группы
$parent_group_id = (isset($Shop_Controller_Show->group))?$Shop_Controller_Show->group:0;
//id Магазина
$shop_id = (Core_Array::get(Core_Page::instance()->libParams, 'shopId'))?Core_Array::get(Core_Page::instance()->libParams, 'shopId'):3;
$oGroups = Core_Entity::factory('shop_group');
$oGroups->queryBuilder()
->where('parent_id', '=', $parent_group_id)
->where('shop_id', '=', $shop_id);
$oGroups = $oGroups->findAll();
$oXml = Core::factory('Core_Xml_Entity')->name("groups_min_prices");
foreach ($oGroups as $oGroup)
{
$aChildren = $oGroup->Shop_Groups->getGroupChildrenId();
$aChildren[] = $oGroup->id;
$oInfSysItem = Core_Entity::factory('shop_item');
$oInfSysItem->queryBuilder()
->from("shop_items")
->where('shop_group_id', 'in', $aChildren)
->order('price')
->limit(1);
$oInfSysItem = $oInfSysItem->findAll();
if (isset($oInfSysItem[0]) && $oInfSysItem = $oInfSysItem[0])
{
$oXmlItem = Core::factory('Core_Xml_Entity')->name("group_min_price")->value($oInfSysItem->price)->addAttribute('id', $oGroup->id);
$oXml->addEntity($oXmlItem);
}
}
$Shop_Controller_Show->addEntity($oXml);
//получаем минимальную цену товара для каждой группы
**Использование:**
В xsl "МагазинКаталогТоваров", в шаблоне вывода групп используем следующий код для вывода минимальной цены:
Страницу создал Константин Сериков 06.02.17 в 15:40