Блог

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 ('ВерхнееМеню'))
->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 ('tree')
//->itemsForbiddenTags (array ('text'))
->groupsMode ('all')
->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)
//->show ()
; // Объединение с нужной таблицей свойств
$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. Проверка вводимых данных при оформлении заказа

    В 6 версии разработчики убрали проверку вводимых данных в форму заказа на шаге заполнения адреса доставки. Предлагаю очень простое решение этой проблемы с использованием JavaScript. 

  • Игорь Бондаренко

    разработчик 

  • HOSTCMS v.6. Красивое горизонтальное выпадающее меню на CSS

    Меню адаптированно к использованию на сайтах под администрированием редакции HostCMS v.5 для вывода элементов каталога товаров. В выпадающем меню также выводится изображение подгруппы.

  • HOSTCMS v.6. Краткая корзина в модальном окне

    Предлагаю вариант показа отложенного товара и содержимого краткой корзины в модальном окне в момент, когда Пользователь откладывает товар для совершения покупки. Решение делалось на основе встроенного в HostCMS адаптивного шаблона с подключеной библиотекой Bootstrap...

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

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

  • Настал 2016. Обновите свой footer

    У каждого сайта в footer (футер) указываются выходные данные компании, а также год создания и текущий год. Актуальность этих данных говорит о том, что сайт жив и обновляется. Это важно, если хотите, чтобы сайт вызывал доверие.

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

Веб дизайн

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

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

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

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

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

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

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