Список всех значений дополнительного свойства по id

#
Re: Список всех значений дополнительного свойства по id
А как эти $minPropertyValue и $maxPropertyValue вывести в XSL?
Модератор
#
Re: Список всех значений дополнительного свойства по id
Dmitry K.,
вы можете включить просмотр XML и убедиться, какому узлу были добавлены значения. Судя по коду, это добавлено для /shop
#
Re: Список всех значений дополнительного свойства по id
А вот этот код:
<?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;
    }
}

Его в настройках страницы прописывать?
#
Re: Список всех значений дополнительного свойства по id
Мне нужно использовать наибольшее значение дополнительного свойства с id=371 в XSL.
Я же могу использовать этот код?
Модератор
#
Re: Список всех значений дополнительного свойства по id
Dmitry K.,
его прописывать там, где вы создаете объект показа с нужным дополнительным функционалом
#
Re: Список всех значений дополнительного свойства по id
nikolajgromkov, при добавлении
$Shop_Controller_Show = new Shop_Controller_Extend_Show(Core_Entity::factory('Shop', 37));
$Shop_Controller_Show
->addMinMaxProperty(array(371))
->show();

пишет ошибку: Цитата:
Exception: Class 'Shop_Controller_Extend_Show' not found
Исключение: класс 'Shop_Controller_Extend_Show' не найден
Модератор
#
Re: Список всех значений дополнительного свойства по id
Dmitry K.,
вы выше привели код объявления Shop_Controller_Extend_Show, судя по ошибке ваш код не добавлен до того, как вы вызываете new Shop_Controller_Extend_Show, код должен лежать в файле по правилам размещения, либо явно быть в файле, где вы создаете объект контроллера показа.
#
Re: Список всех значений дополнительного свойства по id
Hostcms, хорошо, с Shop_Controller_Extend_Show я разобрался… как мне кажется во всяком случае.
Я этот код добавил в закладку “Настройка страницы”:
<?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) {

        }
        return $this;
    }
}

но во вкладке “Код страницы
<?php
$Shop_Controller_Show = new Shop_Controller_Extend_Show(Core_Entity::factory('Shop', 37));

$Shop_Controller_Show
->xsl(Core_Entity::factory('Xsl')->getByName('ДиаграммаВидовДревесиныПоТвёрдости'))
->itemsProperties(array(371))
//->addMinMaxProperty(array(371))
->limit(999)
->calculateCounts(TRUE);

$Shop_Controller_Show
->shopItems()
->queryBuilder()
->leftJoin('property_value_floats', 'shop_items.id', '=', 'property_value_floats.entity_id', array(array('AND' => array('property_value_floats.property_id', '=', 371))))
->where('property_value_floats.value', '>', 0)
->groupBy('shop_items.id')
->where('shop_items.active', '=', 1)
->clearOrderBy()
->orderBy('property_value_floats.value', 'DESC'); /* в порядке убывания значений с плавающей запятой дополнительного свойства товара с кодом 371 (по твёрдости Янка) */

$Shop_Controller_Show
->show();
?>

по-прежнему “ругается” на строку Цитата:
->addMinMaxProperty(array(371))
, которую мне пришлось закомментировать!
Пишет ошибку: Цитата:
Exception: [] operator not supported for strings
, и ничего не выдаёт…
Модератор
#
Re: Список всех значений дополнительного свойства по id
Dmitry K.,
код 2017 года на первой странице темы откорректировали, воспользуйтесь новым вариантом
#
Re: Список всех значений дополнительного свойства по id
hostcms,
так я немного не понял: сейчас тот который в этой теме на первой странице это “новый” или “старый”?
Если старый,то откуда брать новый?
Авторизация