Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления Дизайн-хуков. Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в 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/catalogelement.hook.php с содержанием
    /**
     * изменение сортировки корневых каталогов
     */
    function leftCatal_hook($obj,$row,$rout) {
            if($rout == 'START')
              $obj->root_order = 'name';
    }
    
    $addHandler=array
            (
            'leftCatal'=>'leftCatal_hook'
    );
  2. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
    [hook]
    phpshopshopcatalogelement="php/hook/catalogelement.hook.php";

Добавление в список каталогов блока товаров из спецпредложений

Требуется в список каталогов (shop/CID_XXX.html) добавить ниже несколько товаров из спецпредложений.
  1. Создать файл /phpshop/templates/имя шаблона/php/hook/cell.hook.php с содержанием
    /**
     * Добавление в список каталогов спецпредложения товаров в 3 ячейки, лимит 3
     */
    function cid_category_add_spec_hook($obj,$row) {
        global $PHPShopProductIconElements;
    
        // Случайный выбор каталога
        if(is_array($row))
            foreach($row as $val)
                $cat[]=$val['id'];
        $rand=rand(0,count($cat)-1);
    
        // Используем элемент вывода спецпредложений
        $PHPShopProductIconElements->template='main_product_forma_3';
        $spec=$PHPShopProductIconElements->specMainIcon(false,$cat[$rand],3,3,true);
        $spec=PHPShopText::div(PHPShopText::p($spec),$align="left",$style='float:none;padding:10px');
    
        // Добавляем в переменную списка категорий вывод спецпредложений
        $obj->set('catalogList',$spec,true);
    }
    
    $addHandler=array
            (
            'CID_Category'=>'cid_category_add_spec_hook'
    );
  2. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
    [hook]
    phpshopshop="php/hook/cell.hook.php";

Изменения вида списка подкаталогов

Требуется изменить вид списка подкаталогов (shop/CID_XXX.html). По-умолчанию выводится списком li, нужно изменить форму вывода.
  1. Создать файл /phpshop/templates/имя шаблона/php/hook/cataloglist.hook.php с содержанием
    /**
     * Изменение списка подкаталогов в каталоге с li на div + описание
     */
    function cid_category_hook($obj,$dataArray,$rout) {
    
        $dis=null;
        if($rout=='END') {
            if(is_array($dataArray))
                foreach($dataArray as $row) {
                    $content=PHPShopText::a($obj->path.'/CID_'.$row['id'].'.html',$row['name']);
    
                    // Если требуется выводить описание каталога
                    $content.=PHPShopText::p($row['content']);
    
                    $dis.=PHPShopText::div($content,$align="left",$style='float:left;padding:10px');
                }
    
            // Переназначаем переменную списка категорий
            $obj->set('catalogList',$dis);
        }
    }
    
    $addHandler=array
            (
            'CID_Category'=>'cid_category_hook'
    );
  2. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
    [hook]
    phpshopshop="php/hook/cataloglist.hook.php";

Прайс-лист

Добавление поля количества товара в корзине

Требуется вставить поле кол-ва товара для добавления требуемого кол-ва товара в корзину из раздела прайс-листа.
  1. Создать файл /phpshop/templates/имя шаблона/php/hook/price.hook.php с содержанием
     /**
     * Добавление поля кол-во товара в корзине для прайс-листа
     */
    function product_pricecore_hook($obj,$data,$rout) {
        if($rout == 'END') {
            $dis=null;
            // Добавляем в дизайн ячейки с товарами
            if(is_array($data))
                foreach($data as $row) {
                    $name=PHPShopText::a($obj->seourl($row),$row['name']);
                    $idn='n'.$row['id'];
                    $cart=PHPShopText::a('javascript:AddToCartNum('.$row['id'].',''.$idn.'')',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/basket_put.gif',false,'absMiddle'),$obj->lang('product_sale'));
    
                    $num=PHPShopText::setInputText(null,"$idn",1,30);
                    $dis.=$obj->tr('#ffffff',$name,$obj->price($row).' '.$obj->currency(),$num,$cart);
                }
        return $dis;
        }
    }
    
    $addHandler=array
            (
            'product'=>'product_pricecore_hook',
    );
  2. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
    [hook]
    phpshopprice="php/hook/price.hook.php";

Добавление второй цены

Требуется вывести вторую цену товара в раздел прайс-листа.
  1. Создать файл /phpshop/templates/имя шаблона/php/hook/price.hook.php с содержанием
    /**
     * Добавление поля кол-во товара в корзине для прайс-листа
     */
    function product_price2core_hook($obj,$data,$rout) {
        if($rout == 'END') {
            $dis=null;
            // Добавляем в дизайн ячейки с товарами
            if(is_array($data))
                foreach($data as $row) {
                    $name=PHPShopText::a($obj->seourl($row),$row['name']);
                    if(empty($row['sklad']))
                    $cart=PHPShopText::a('javascript:AddToCart('.$row['id'].')',PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/basket_put.gif',false,'absMiddle'),$obj->lang('product_sale'));
                    else $cart=PHPShopText::a('../users/notice.html?productId='.$row['id'],PHPShopText::img('/phpshop/templates/faqbootstrap/images/shop/date.gif',false,'absMiddle'),$obj->lang('product_notice'));
    
                    // Цена 2 с учетом валюты
                    $price_dop=PHPShopProductFunction::GetPriceValuta($row['id'],$row['price2'],$row['baseinputvaluta']);
    
                    // Если нужны остальные цены
                    $price_dop.=' / '.PHPShopProductFunction::GetPriceValuta($row['id'],$row['price3'],$row['baseinputvaluta']);
                    $price_dop.=' / '.PHPShopProductFunction::GetPriceValuta($row['id'],$row['price4'],$row['baseinputvaluta']);
                    $price_dop.=' / '.PHPShopProductFunction::GetPriceValuta($row['id'],$row['price5'],$row['baseinputvaluta']);
    
                    $dis.=$obj->tr('#ffffff',$name,$obj->price($row).' / '.$price_dop.' '.$obj->currency(),$cart);
                }
        return $dis;
        }
    }
    
    $addHandler=array
            (
            'product'=>'product_price2core_hook',
    );
  2. Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
    [hook]
    phpshopprice="php/hook/price.hook.php";

© PHPShop™, 2004-2019г. Все права защищены.
Тел: +7-495-989-11-15 (многоканал.), пн - пт, 10.00 - 18.00