HostCMS v.6. Вывод товаров по значению дополнительного свойства типа строка


Вам нужно вывести товары интернет-магазина по ка
Для начала создаем дополнительное свойство, пройдя по цепочке «Интернет-магазин ⇒ Товар ⇒ Свойства товара». Создавая свойство товара, выберем Тип — Строка (к примеру).
Для того, чтобы отфильтровать товары магазина по созданному нами Дополнительному свойству, вписываем в макет страницы следующий php код:
<?php
// ВЫВОД ТОВАРОВ ПО ЗНАЧЕНИЮ ДОПОЛНИТЕЛЬНОГО СВОЙСТВА
if (Core::moduleIsActive ('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show (
Core_Entity::factory ('Shop', 3)
) ;
$Shop_Controller_Show
->xsl (
Core_Entity::factory ('Xsl')->getByName ('МагазинКаталогТоваровНаГлавнойСпецПред')
)
->groupsMode ('none')
//->itemsForbiddenTags (array ('text'))
->group (FALSE)
->itemsProperties (TRUE)
->limit (3);
// Объединение с нужной таблицей свойств
$Shop_Controller_Show
->ShopItems ()
->queryBuilder ()
->where ('shop_items.active', '=', 1)
->clearOrderBy ()
->orderBy ('RAND ()') // в случайном порядке
->leftJoin ('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')
->leftJoin ('property_value_strings', 'shop_items.id', '=', 'property_value_strings.entity_id',
array (
array ('AND' ≥ array ('shop_item_properties.property_id', '=', Core_QueryBuilder::expression ('`property_value_strings`.`property_id`')))
)
)
// Идентификатор дополнительного свойства
->where ('shop_item_properties.property_id', '=', 64) // здесь указываете id вашего дополнительного свойства
// Значание дополнительного свойства
->where ('property_value_strings.value', '>', '0')
->groupBy ('shop_items.id')
// Количество свойств
->having ('COUNT (shop_item_properties.shop_id)', '=', 1);
$Shop_Controller_Show->show ();
}
? >