Полезные решения, шпаргалки и примеры по html, css, js, jQuery, MySQL, PHP, HostCMS, ssh.
Для товаров из магазина:
<?php
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', 1)
);
$Shop_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('МагазинТоварыНаГлавной')
)
->groupsMode('none') // избавляемся от групп и лишних запросов
->group(FALSE) // добавляем элементы из всех групп
->itemsForbiddenTags(array('text','description'))
->viewed(FALSE) // исключаем просмотренные товары, т.к. по умолчанию они добавляются в XML, а нам не нужна дополнительнеая нагрузка, тем более мы их не выводим в группах
->itemsPropertiesList(FALSE) // исключаем вывод списка доп. свойств, т.к. по умолчанию они добавляются в XML, а нам не нужна дополнительная нагрузка, тем более мы их не выводим
->limit(5);
$Shop_Controller_Show
->shopItems()
->queryBuilder()
->leftJoin('shop_item_properties', 'shop_items.shop_id', '=', 'shop_item_properties.shop_id')
->leftJoin('property_value_ints', 'shop_items.id', '=', 'property_value_ints.entity_id',
array(
array('AND' => array('shop_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
)
)
->where('shop_item_properties.property_id', '=', 63) // ID свойства типа "флажок"
->where('property_value_ints.value', '=', 1) // флажок включен
// расскомментировать если нужно товары показывать рандомно
//->clearOrderBy()
//->orderBy('RAND()')
;
$Shop_Controller_Show->show();
?>
Для элементов информационной системы:
<?php
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
Core_Entity::factory('Informationsystem', 1)
);
$Informationsystem_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('СписокЭлементовНаГлавной')
)
->groupsMode('none') // избавляемся от групп и лишних запросов
->group(FALSE) // добавляем элементы из всех групп
->itemsForbiddenTags(array('text','description'))
->itemsPropertiesList(FALSE) // исключаем вывод списка доп. свойств, т.к. по умолчанию они добавляются в XML, а нам не нужна дополнительная нагрузка, тем более мы их не выводим
->limit(5);
$Informationsystem_Controller_Show
->informationsystemItems()
->queryBuilder()
->leftJoin('informationsystem_item_properties', 'informationsystem_items.informationsystem_id', '=', 'informationsystem_item_properties.informationsystem_id')
->leftJoin('property_value_ints', 'informationsystem_items.id', '=', 'property_value_ints.entity_id',
array(
array('AND' => array('informationsystem_item_properties.property_id', '=', Core_QueryBuilder::expression('`property_value_ints`.`property_id`')))
)
)
->where('informationsystem_item_properties.property_id', '=', 63) // ID свойства типа "флажок"
->where('property_value_ints.value', '=', 1) // флажок включен
// расскомментировать если нужно товары показывать рандомно
//->clearOrderBy()
//->orderBy('RAND()')
;
$Informationsystem_Controller_Show->show();
?>