PHPShop
  • 🟠PHPShoр: прибыльные магазины для малого бизнеса
  • С чего начать?
    • Быстрый старт
    • ✨Помощь AI
    • SEO возможности
    • Ведение склада
    • Pro модули
    • Виды скидок
    • Конфигурации
    • Цифровые товары
  • Установка, обновление
    • Установка на хостинг
    • Установка на компьютер
    • После покупки Лицензии
    • Техническая поддержка
    • Обновление PHPShop
    • 📦Коробочная версия
    • 🖥️Аренда на своем хостинге
    • ☁️Аренда в облаке
  • ⤵️Наполнение базы
    • Переезд и миграция
    • Импорт / Экспорт:
      • Excel
      • YML
      • RSS
      • CommerceML
      • Сторонние XML
      • Сторонние парсеры
        • Пример загрузки товаров с сайта Sima-land.ru
      • Парсер PriceLoader
    • Импорт по расписанию
    • Интерактивный .xls прайс с корзиной
    • Пакетная загрузка фото
    • Пакетное редактирование базы
    • Бекап и очистка базы
  • 🌟Синхронизация Pro
    • 🟠1С
      • Версии и конфигурации 1С
      • Встроенный типовой обмен CommerceML (для новых версий 1С)
      • Тестирование связи с 1С на демо-версии
      • Установка и активация внешнего обработчика 1С (для старых версий 1С)
      • Инструкции по внешнему обработчику 1С (для старых версий 1С)
      • Видео-уроки по внешнему обработчику 1С (для старых версий 1С)
      • Дополнительные обработчики (для старых версий 1С)
        • Редактор описаний в 1С
        • Импорт прайс-листов в 1С
        • Загрузка изображений в 1С
    • 🔵МойСклад
    • 🔵OZON
    • 🟣Wildberries
    • 🟢Мегамаркет
    • ⚫Яндекс.Маркет
    • 🟢Avito
    • 🔵Вконтакте
  • ⤴️Выгрузка товаров
    • Яндекс и Google
  • 📦Товары
    • Ручное добавление каталогов, товаров
    • Работа с изображениями
    • Характеристики, фильтры
    • Подтипы
    • Мультисклад
    • Витрины
    • Поиск
  • 📈Заказы
    • Работа с заказами
    • Способы оплаты
      • Наличная оплата
      • Счет в банк
      • Платежные системы
      • Скидки от вида оплаты
    • Настройка доставок
    • Telegram, VK, SMS, PUSH
    • Ценообразование
  • 🌟Бесплатные модули
    • 100+ бесплатных модулей:
    • ⭐Pro модули
    • Дизайн
      • Stiker - стикер
      • Кнопки
      • Count Cat
      • Filemanager
      • Пакетная обработка фото на сервере (Генератор превью картинок)
      • Mobile
      • Панорама 360°
      • Snow
    • SEO
      • SeoUrl
      • Seo Meta Новости
      • Карта сайта SiteMap
      • Карта сайта SiteMap Pro
    • Доставки
      • Почта России
      • Saferoute Widget
      • Boxberry Widget
      • Яндекс Доставка
      • CDEK Widget
      • Калькулятор доставки
      • Нова пошта
      • Бланки Почты России
      • Виджет доставок
    • Чаты и звонки
      • Cleversite
      • Мультиязычность Google Translate
      • Envybox
      • JivoSite
      • Pozvonim
      • Обратный звонок
      • Verbox
    • CRM
      • МойСклад
      • 📊Bitrix24
      • 📈retailCRM
      • 🔊Рекламные кампании
      • Unisender
    • Маркетплейсы
      • 🟣WB Partners
      • 🔵OZON Seller
      • ⚫Яндекс.Маркет
      • 🟢Мегамаркет
      • 🟢Авито
      • 🔵VK
      • Модуль Маркетплейсы: Яндекс.Маркет, СберМегаМаркет AliExpress, Google Merchant
    • Платежные системы
      • Банки
        • Альфа-банк
        • ВТБ
        • Банк Авангард
        • МодульБанк
        • Т-Банк
      • Кассы
        • Онлайн касса Атол
        • Печка54
        • CloudKassir
        • Robokassa
        • Модулькасса
      • Платежные системы агрегаторы
        • ЮKassa
        • ЮMoney
        • IntellectMoney
        • Mandarin
        • 2can&ibox
        • NovaPay
        • AcquiroPay
        • Idram
        • Assist
        • CloudPayments
        • Easypay
        • PayKeeper
        • Fondy
        • LiqPay
        • PayOnline
        • PayPal
        • Uniteller
      • Платежные шлюзы
        • PayAnyWay (Монета) платежный шлюз
        • PayMaster
        • Interkassa
        • Platron
        • Webmoney
        • Счет в банк
    • Кредитование
      • Купи в рассрочку Долями
      • Покупка в кредит от Alfabank Credit
      • Купить в кредит Почта Банк
      • Купи в кредит Т-Банк
    • Яндекс
      • Яндекс.Маркет
      • Яндекс.Карта
    • Продажи
      • Подарок - товар с 0₽ в корзине
      • Оптовые акции - скидки от количества товара в заказе
      • Хиты продаж
      • Свойства товаров
      • Комплектующие
      • Заказ в 1 клик
      • Sort Selection - сквозной фильтр на главной
      • Товар дня
      • Группы товаров - продажа комплектов
      • Промокоды
      • Услуги сборки, монтажа в карточке товара
      • Product Similar похожие товары по характеристикам
      • Product List похожие товары из каталога
      • Product Last View - просмотренные товары
      • Sort Brand - подборки по характеристикам
      • Sort Product - товары по характеристикам
      • Visual Cart - брошенные корзины
      • Партнерская программа
    • Разработчикам
      • Умный поиск
      • Adm Log
      • WebHooks
      • Form Generator
      • История заказов
      • GeoIP
      • Замок
      • Product Option
      • Debug
      • Задачи
      • Защитник файлов Guard
  • 👫Пользователи
    • Покупатели
    • Статусы и скидки
    • Бонусы
    • Авторизация и регистрация
  • 👤Администраторы
    • Администраторы
    • Восстановление пароля
    • Журнал авторизации
  • 🎯Маркетинг
    • Канбан доска
    • Промоакции
    • Почтовые рассылки
    • Баннеры и pop-up
  • 💻Веб-сайт
    • Страницы
    • Отзывы
    • Новости
    • Пиксель, счетчики
  • ⚒️Настройки
    • Основные настройки
    • Реквизиты
    • Обмен данными
    • SEO настройки
    • Валюты
    • Изображения
    • Витрины
    • Склады
    • Диалоги и чаты
    • Интеграция с сервисами
    • Быстродействие
    • Интеграция с Yandex Cloud
    • Локализация
    • Обслуживание
  • 🎨Дизайн
    • Настройка шаблона
    • HTML Верстальщику
    • 🔦Шпаргалка по шаблонам
  • 👨‍💻API
    • PHP API
    • JSON API
    • Создание модулей - правка API через файлы модулей
    • Создание хуков - правка API через функции
    • Создание дизайн-хуков - правка API через файлы дизайна
    • База дизайн-хуков
      • Характеристики и новости
      • Заказы и личный кабинет
      • Каталоги и прайс-лист
      • Поиск и товары
      • Корзина и элементы
    • Создание 1С-хуков
      • API синхронизации интернет-магазина с 1С
      • Изменение API синхронизации с 1С
  • EasyControl
    • Установка
    • PriceLoader
    • Monitor
    • Updater
Powered by GitBook
On this page
  • Корзина
  • Добавление иконки товара в корзину заказа
  • Элементы
  • Уменьшение количества знаков в описании элемента спецпредложений
  • Добавление четвертого товара в элементе спецпредложений
  • Изменение сетки и количества товара в элементе новинки
  • Изменение количества товара в элементе сейчас покупают
  • Изменение количества товаров в элементе вывода новинок и спецпредложений на всех страницах
  • Изменение количества мини-новостей
  • Изменение вида ссылок на подкаталоги в элементе таблица категорий

Was this helpful?

  1. API
  2. База дизайн-хуков

Корзина и элементы

Last updated 2 months ago

Was this helpful?

Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления . Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в config.ini, пример:

  • #phpshopprice="php/hook/price.hook.php"; - выключен

  • phpshopprice="php/hook/price.hook.php"; - включен

или поставить знак решетки # в массиве перехвата $addHandler в файле хука, пример:

  • $addHandler=array(''''#'''product'=>'product_pricecore_hook'); - выключен

  • $addHandler=array('product'=>'product_pricecore_hook'); - включен

Ключ секции [hook] должен быть уникален, если требуется создать новый хук на тот же класс(ключ), то требуется объединить хуки по правилам составления дизайн-хуков.

Корзина

Добавление иконки товара в корзину заказа

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/order.hook.php с содержанием

<?php
function ordercartforma_hook($val,$option,$rout) {
    if($rout == 'START') {
    
        $val=$val[0];
        
        $PHPShopProduct = new PHPShopProduct($val['id']);
        PHPShopParser::set('cart_image',$PHPShopProduct->getParam('pic_small')); // Иконка
        PHPShopParser::set('cart_id',$val['id']);
        PHPShopParser::set('cart_art',$val['uid']); // Артикул
        PHPShopParser::set('cart_xid',$option['xid']);
        PHPShopParser::set('cart_name',$val['name']);
        PHPShopParser::set('cart_num',$val['num']);
        PHPShopParser::set('cart_price',$val['price']);

        return ParseTemplateReturn('./phpshop/templates/'.$_SESSION['skin'].'/order/product.tpl',true);
    }
}

$addHandler=array
        (
        'ordercartforma'=>'ordercartforma_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
ordercartforma="php/hook/order.hook.php";
  1. Скопировать файл шаблона /phpshop/lib/templates/order/product.tpl в /phpshop/templates/имя шаблона/order/product.tpl

  2. Добавить переменную @cart_image@ в шаблон /phpshop/templates/имя шаблона/order/product.tpl

Элементы

Уменьшение количества знаков в описании элемента спецпредложений

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/specindex.hook.php с содержанием

<?php
/**
 * Уменьшение описания
 */
function product_grid_hook($obj,$row){
    $obj->set('productDes',substr($row['description'],0,22).'...');
}
 
$addHandler=array
        (
        'product_grid'=>'product_grid_hook'
);

Функция урежет краткое описание до 22 символов. Вместо 22 можно указать требуемое количество знаков.

  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopproductelements="php/hook/specindex.hook.php";

Добавление четвертого товара в элементе спецпредложений

В элементе спецпредложений на главной странице можно выставит параметр вывода товара от 1 до 3 (Настройка "Товаров в длину для витрины главной страницы"). Для добавления 4-го товара следуйте инструкции.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/specindex.hook.php с содержанием

<?php
/**
 * Добавление 4-го товара
 */
function specMain_hook($obj) {
    $obj->cell=4;
}
 
$addHandler=array
        (
        'specMain'=>'specMain_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopproductindexelements="php/hook/specindex.hook.php";

Изменение сетки и количества товара в элементе новинки

Требуется изменить сетку и количество товаров для переменной новинок @specMainIcon@.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/mainnew.hook.php с содержанием

<?php
/**
 * Изменение сетки товаров в "Новинках"
 */
function specMainIcon_hook($obj) {
    
    $obj->cell=2; // Размер сетки, вывод в 2 товара длиной
    $obj->limitspec=4; // Количество выводимых товаров

}

$addHandler = array
    (
    'specMainIcon' => 'specMainIcon_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopproducticonelements="php/hook/mainnew.hook.php";

Изменение количества товара в элементе сейчас покупают

Требуется изменить количество товаров для выборки и количество последних анализируемых заказов. Показывать только 5 последних заказанных товаров из 5 последних заказов.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/nowbuy.hook.php с содержанием

<?php
/**
 * Изменение сетки товаров в "Сейчас покупают"
 */
function nowBuy_hook($obj) {
   $obj->limitpos = 5; // Количество выводимых позиций
   $obj->limitorders = 5; // Количество запрашиваемых заказов
   $obj->cell=3; // Кол-во товара в длину
}

$addHandler=array
        (
        'nowBuy'=>'nowBuy_hook'
         );
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

 [hook]
phpshopproductindexelements="php/hook/nowbuy.hook.php";

Изменение количества товаров в элементе вывода новинок и спецпредложений на всех страницах

Требуется изменить количество товаров в длину в элементе новинки, выводимой через переменную @specMainIcon@.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/specicon.hook.php с содержанием

<?php
/**
 * Изменение сетки товаров в спецпредложениях
 */
function specMainIcon_hook($obj) {

    // Корректируем кол-во товаров для вывода
    $obj->limitspec=2;
}
 
$addHandler=array
        (
        'specMainIcon'=>'specMainIcon_hook',
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

 [hook]
phpshopproducticonelements="php/hook/specicon.hook.php";

Изменение количества мини-новостей

Требуется изменить кол-во мини-новостей с 5 (по умолчанию) на 4 из-за особенностей дизайна. Сделать возможным вывод мини-новостей с помощью @miniNews@ на всех страницах.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/news.hook.php с содержанием

<?php
/**
 * Изменение кол-ва новостей на главной странице
 */
function news_index_hook($obj,$row,$rout) {

    if($rout == 'START'){

    // Кол-во
    $obj->limit=4;

    // Ограничение вывода только на главной
    $obj->disp_only_index=false;
    }
}

$addHandler=array
        (
        'index'=>'news_index_hook',
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopnewselement="php/hook/news.hook.php";

Изменение вида ссылок на подкаталоги в элементе таблица категорий

На главной странице доступен вывод таблицы категорий с иконками через переменную @leftCatalTable@, требуется изменить вид перечня подкатегорий.

  1. Создать файл /phpshop/templates/имя шаблона/php/hook/catalogelement.hook.php с содержанием

<?php
/**
 * Изменение шаблона ссылок таблицы категорий со строки на столбик
 */
function template_cat_table_hook($obj,$val) {
    return PHPShopText::a('/shop/CID_'.$val['id'].'.html',$val['name'],$val['name']).PHPShopText::br();
}

$addHandler=array
        (
        'template_cat_table'=>'template_cat_table_hook'
);
  1. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием

[hook]
phpshopshopcatalogelement="php/hook/catalogelement.hook.php";

Шаблон блока каталога в таблице находится в /phpshop/templates/имя шаблона/catalog/catalog_table_forma.tpl

👨‍💻
Дизайн-хуков