skip to content
KAD::Wiki
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Log In
>
You are here:
Приветствие
»
Для сотрудников
»
Разработка
»
HostCMS
»
Статьи (по модулям)
»
Интернет-магазин
»
Группы
»
Добавление минимальной и максимальной цены на основе товаров группы и её подгрупп
private:koding:hostcms:modules:shop:groups:minmaxpricegroup
Media Files
===== Добавление минимальной и максимальной цены на основе товаров группы и её подгрупп ===== <code><?php defined('HOSTCMS') || exit('HostCMS: access denied.'); /** * * Версия для HostCMS v.6x * @author KAD * http://www.artemkuts.ru/ * artem.kuts@gmail.com * * Копирование и использование файлов модуля * в коммерческих целях ЗАПРЕЩЕНО * Core_Event::attach('Shop_Group_Model.onBeforeGetXml', array('Kad_Shop_Group_Observers_Minmaxpriceob', 'onBeforeGetXml')); * */ class Kad_Shop_Group_Observers_Minmaxpriceob { // Кэш static public $aCache = NULL; /** * The singleton instances. * @var mixed */ static public $instance = NULL; public function __construct() { return self::instance(); } static public function instance() { if (is_null(self::$instance)) { self::$instance = new self(); } return self::$instance; } // Добавляем информацию о минимальной и максимальной цене товара в группе static public function onBeforeGetXml($object, $operation) { /*if (CURRENT_SITE != 2) { return; }*/ if (!isset(self::$aCache[$object->id])) { // Получаем подгруппы $aGroupsId = array(); $currGroupId = $object->id; $aGroupsId[] = $currGroupId; $aoCurGroups = array(Core_Entity::factory('Shop_group', $currGroupId)); do{ $aoParGroups = $aoCurGroups; $aCurGroupsId = array(); $aoCurGroups = array(); foreach($aoParGroups as $oParGroup) { $aCurGroupsId[] = $oParGroup->id; $aGroupsId[] = $oParGroup->id; } $aGroups = Core_Entity::factory('Shop_group'); $aGroups->queryBuilder() ->where('parent_id', 'IN', $aCurGroupsId); $aoCurGroups = $aGroups->findAll(); }while(count($aoCurGroups) != 0); $oQB = Core_QueryBuilder::select(array('max(price)', 'max'), array('min(price)', 'min')) ->from('shop_items') ->where('shop_group_id', 'IN', $aGroupsId); $aRes = $oQB->execute()->asAssoc()->result(); $min = $aRes[0]['min']; $max = $aRes[0]['max']; self::$aCache[$object->id]['min'] = $min; self::$aCache[$object->id]['max'] = $max; } else { $min = self::$aCache[$object->id]['min']; $max = self::$aCache[$object->id]['max']; } $object ->addEntity( Core::factory('Core_Xml_Entity') ->name('min_price') ->value($min) ) ->addEntity( Core::factory('Core_Xml_Entity') ->name('max_price') ->value($max) ); } }</code>
Save
Preview
Cancel
Edit summary
private/koding/hostcms/modules/shop/groups/minmaxpricegroup.txt
· Last modified: 27.06.17 в 15:36 by
maximzasorin_gmail.com
Page Tools
Show page
Old revisions
Export to PDF
Rename Page
Back to top