PHPShopProductIconElements

Материал из PHPShop

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

PHPShopProductIconElements - элемент оформления вывода товаров в виде иконок. Является наследником основного класса вывода элементов оформления PHPShopProductElements,PHPShopElements и обладает всеми их методами и свойствами.

PHPShopProductIconElements находится в phpshop/inc/shopelements.inc.php.


Содержание

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

  • Вывод новинок в текстовом блоке
  • Вывод спецпредложений в текстовом блоке
  • Вывод сопутствующих товаров в текстовом блоке

Методы

  • specMainIcon() - вывод спецпредложений и новинок в виде колонки (возможно видоизменение до вида таблицы).
  • setCell() - генерация сетки товаров
  • compile() - компиляция и вывод элемента в сборе
  • seamply_forma() - простая форма вывода для использования в персональных функциях. В качестве аргумента принимает массив данных товара и стилизует вывод данных под спецпредложения в виде иконок или таблицы с учетом всех промежуточных операций с данными товара, такими как расчет цены и склада.

Шаблоны

Используется следующие шаблоны уведомлений и форм данных. Вы можете их настроить и поменять под свои задачи.

phpshop/templates/имя шаблона/product

  • main_spec_forma_icon.tpl - форма краткого описания товара для элемента товара (спецпредложения, новинки, сопутствующие товары в виде колонки)

Хуки

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

setCell

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

Пример:

 
/**
 * Изменение формата решетки между товарами c <td> на <li>
 * @param array $obj объект
 * @param array $arg массив данных
 * @return string
 */
function setcell_hook($obj,$arg) {
 
    $li=null;
    $panel=array('panel_l','panel_r','panel_l','panel_r');
 
    foreach($arg as $key=>$val) {
        if(!empty($val)) {
            $li.='<li class="'.$panel[$key].'">'.$val.'</li>';
        }
    }
 
    return $li;
}
 
$addHandler=array
        (
        'setcell'=>'setcell_hook'
         );

compile()

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

Пример:

 
/**
 * Изменение формата решетки между товарами c <td> на <li>, компиляция списка в <ul>
 * @return string
 */
function compile_spec_hook($obj) {
    $ul='<ul>'.$obj->product_grid.'</ul>';
    $obj->product_grid=null;
    return $ul;
}
 
$addHandler=array
        (
        'compile'=>'compile_spec_hook'
         );