Блог

HOSTCMS v.6. Полезные php коды

HOSTCMS v.6. Полезные php коды

Некоторые полезные php коды для вывода данных на странице сайта.

Для структуры сайта

— Вывод меню на основе вложенных узлов структуры (подходит для многоязычных версий). Выводим подменю структуры с конкретным id.

<?php
// Верхнее меню
$Structure_Controller_Show = new Structure_Controller_Show (
Core_Entity::factory ('Site', CURRENT_SITE));
$Structure_Controller_Show->xsl (Core_Entity::factory ('Xsl')
->getByName ('ВерхнееМеню')) ->parentId(248)//заменить на свой ID ->menu(1)
->show();
? >

Для интернет-магазина

— Вывод Групп и Подгрупп товаров. Для создания меню из групп интернет-магазина.

 <?php
// Разделы магазина
if (Core::moduleIsActive('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show(
Core_Entity::factory('Shop', 1)
) ;
$Shop_Controller_Show
->xsl (
Core_Entity::factory ('Xsl')->getByName ('МагазинГруппыТоваровНаГлавной1')
)
->groupsMode ('all')
->itemsForbiddenTags(array ('text'))
->limit(0)
->show();
}
? >

— Вывод товаров по значению Дополнительного свойства. Код подходит для вывода на Главной странице сайта хитов продаж, либо для других целей, согласно функциональным особенностям конкретного сайта.

<?php
if (Core::moduleIsActive ('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show (
Core_Entity::factory ('Shop', 1)
) ;
$Shop_Controller_Show
->xsl (
Core_Entity::factory ('Xsl')->getByName ('КаталогНаГлавнойСпецПред')
)
->groupsMode ('none')
->itemsForbiddenTags (array ('text'))
->group(FALSE)
->itemsProperties(TRUE)
->limit(2);

// Объединение с нужной таблицей свойств
$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', '=', 78)
// Значание дополнительного свойства
->where('property_value_ints.value', '=', '1')
->groupBy('shop_items.id')
// Количество свойств
->having('COUNT (shop_item_properties.shop_id)', '=', 1);

$Shop_Controller_Show->show ();
}
? >

— Вывод производителей на странице сайта.

 <?php // Разделы магазина 
if (Core::moduleIsActive ('shop'))
{
$Shop_Controller_Show = new Shop_Controller_Show (Core_Entity::factory ('Shop', 1)) ;
$oShop = $Shop_Controller_Show->getEntity (); // XML-сущность, к которй будут добавляться производители
$oProducersXmlEntity = Core::factory ('Core_Xml_Entity')->name ('producers'); // Добавляем XML-сущность контроллеру показа
$Shop_Controller_Show->addEntity ($oProducersXmlEntity); // Список производителей
$aShop_Producers = $oShop->Shop_Producers->findAll (); foreach ($aShop_Producers as $oShop_Producer) { // Добавляем производителя потомком XML-сущности
$oProducersXmlEntity->addEntity ($oShop_Producer->clearEntities ()) ;
} $Shop_Controller_Show ->xsl (Core_Entity::factory ('Xsl')->getByName ('МагазинСписокПроизводителей1'))
->groupsMode ('all')
//->itemsForbiddenTags(array ('text'))
->itemsProperties(TRUE)
->group(0)
->limit(0)
->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')
->itemsForbiddenTags (array ('text'))
->group(FALSE)
->limit(3);

// Объединение с нужной таблицей свойств
$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', '=', 19)
// Значание дополнительного свойства
->where('property_value_ints.value', '=', '123')
->groupBy('informationsystem_items.id')
// Количество свойств
->having('COUNT (informationsystem_item_properties.informationsystem_id)', '=', 1); $Informationsystem_Controller_Show->show ();
? >

Понравилась статья? Поделитесь

Вас может заинтересовать:

  • HOSTCMS v.6. Боковое выпадающее меню на CSS для каталога товаров

    Создадим раздвижное меню для каталога товаров с несколькими уровнями вложенности разделов. Меню будет открыто в основных разделах, лежащих в корневом каталоге. В принципе, вам нужно просто скопировать шаблон, CSS стили и пользоваться этим меню...

  • HOSTCMS v.6. Поиск по сайту с показом карточки товара

    Небольшая доработка стандартного XSL шаблона «Поиск» для сайтов на HostCMS

  • Гостиница Али

    корпоративный сайт гостиницы на HostCMS

  • Как создать сайт?

    Многие начинающие пользователи интернета задают себе данную фразу. Но не у всех выходит добиться желаемого... Всё связано с различными стереотипами, например, о том, что для создания сайта или личной странички в интернете требуются навыки и знание программирования... Прочитайте статью и создайте свой сайт.

  • Вертикальное выпадающее меню на jQuery для HostCMS

    Простое вертикальное меню с плавно выпадающим подменю для сайтов на HostCMS. Работает на jQuery…

Наши услуги по созданию сайтов

Веб дизайн

Разработка дизайна и создание интернет-сайта.

Поддержка сайта

Поддержка работоспособности. Написание текстов и статей. Наполнение товарами.

Готовый дизайн

Готовые шаблоны интернет-магазинов и корпоративных сайтов на HostCMS.

Контекстная реклама

Настройка и ведение рекламной кампании в Директ