Пример контроллера с получением минимальных/максимальных значений доп свойства:
<?php
class Shop_Controller_Extend_Show extends Shop_Controller_Show
{
public function addMinMaxProperty($aProperties_id)
{
$iCurrentShopGroup = intval($this->group);
$oShop = $this->getEntity();
foreach($aProperties_id as $property_id)
{
$aPropertyValues = '';
$oProperty = Core_Entity::factory('Property', $property_id);
$oShop_Items = $oShop->Shop_Items;
$this->_applyItemConditionsQueryBuilder($oShop_Items->queryBuilder());
$aShop_Items = $oShop_Items->getAllByShop_Group_Id($iCurrentShopGroup);
foreach($aShop_Items as $oShop_Item)
{
$oPropertyValue = $oProperty->getValues($oShop_Item->id, FALSE);
if(isset($oPropertyValue[0]))
{
$aPropertyValues[] = $oPropertyValue[0]->value;
}
}
if(is_array($aPropertyValues))
{
$minPropertyValue = min($aPropertyValues);
$maxPropertyValue = max($aPropertyValues);
$this->addEntity(
Core::factory('Core_Xml_Entity')
->name('minPropertyValue')
->value($minPropertyValue)
->addAttribute('id', $property_id)
)
->addEntity(
Core::factory('Core_Xml_Entity')
->name('maxPropertyValue')
->value($maxPropertyValue)
->addAttribute('id', $property_id)
);
}
}
return $this;
}
}