PHPShopShopCore

Материал из PHPShop

Перейти к: навигация, поиск

PHPShopShopCore - это добавочное ядро системы интернет-магазина, включающая в себя все функции по обработке информации по товарам, категориям и поиска товаров.

PHPShopShopCore является наследником основного класса ядра системы PHPShopCore и обладает всеми его методами и свойствами.


Содержание

Использование

Используется в качестве конструктора для создания:

  • PHPShopShop - Обработчик вывода товаров и категорий
  • PHPShopSearch - Обработчик поиска товаров
  • PHPShopNewprice - Обработчик распродаж (товаров с наличием новой цены)
  • PHPShopNewtip - Обработчик новинок
  • PHPShopPrice - Обработчик прайс-листа
  • PHPShopPrint - Обработчик печатной формы товара
  • PHPShopSelection - Обработчик подбора товаров по характеристикам
  • PHPShopSelectioncat - Обработчик подбора товаров по характеристикам для категорий
  • PHPShopSpec - Обработчик спецпредложений товаров

Методы

  • query_filter() - Генерация SQL запроса для выборки товаров.
  • currency() - Расчет валюты
  • select() - Создание запроса к БД на основе PHPShopOrm
  • price() - Расчет стоимости товара
  • setPaginator() - Генерация пагинатора (навигация по страницам товаров)
  • checkMultibase() - Проверка режима Multibase
  • checkStore() - Проверка дополнительных данных товара по складу
  • setCell() - Форма ячеек(сетка) с товарами
  • product_grid() - Генератор сетки товаров

Свойства

  • $ed_izm - Единица измерения [шт.|уп.]
  • $no_photo - Фото-заглушка при отсутствии фото товара
  • $debug - Режим отладки SQL запросов
  • $cache - Режим кэширования SQL запросов
  • $cache_format - Форматирование элементов кэша, удаление неиспользуемых элементов или элементов большого содержания из памяти кэша
  • $grid - Генерация рамок в сетки товаров
  • $max_item - Лимит вывода записей на 1 странице
  • $memory - Память параметов выполнения функций и модулей.

Хуки

Ядро PHPShopShopCore поддерживает перехват, изменение методов и свойств через хуки. Хук внедрить можно через модуль или дизайн-хуков.

price()

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

Пример:

 
/**
 * Вывод заглушки на цену товара при отсутствии товара на складе
 * @param array $obj объект
 */
function core_price_hook($obj,$row) {
 
    if($row['items'] < 1) return 'Под заказ';
 
}
 
$addHandler=array
        (
        'price'=>'core_price_hook'
         );

setPaginator()

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

Пример:

 
/**
 * Вывод заглушки на ссылку "Показать все" при большом количестве товара на странице
 * @param array $obj объект
 */
function setPaginator_hook($obj,$row,$rout) {
    if($rout == 'END' and $obj->num_page>1000){
    $nav=str_replace('Все позиции','',$row);
    $obj->set('productPageNav',$nav);
    }
}
 
$addHandler=array
        (
        'setPaginator'=>'setPaginator_hook'
         );

checkStore()

Поддерживает хук в конце функции.

Пример:

 
/**
 * Вывод заглушки на цену товара для незарегистрированных пользователей
 * @param array $obj объект
 */
function checkStore_hook($obj,$row) {
    if(empty($_SESSION['UsersId'])){
    $obj->set('productPrice','XXX');
    }
}
 
$addHandler=array
        (
        'checkStore'=>'checkStore_hook'
         );


product_grid()

Поддерживает хук в cередине функции.

Пример:

 
/**
 * Форматируем описание товара до 250 символов в длину
 * @param array $obj объект
 */
function product_grid_hook($obj,$row) {
    $des=substr($row['description'],0,250));
    $obj->set('productDes',$des);
}
 
$addHandler=array
        (
        'product_grid'=>'product_grid_hook'
         );