Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления Дизайн-хуков. Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в config.ini, пример:
Ключ секции [hook] должен быть уникален, если требуется создать новый хук на тот же класс(ключ), то требуется объединить хуки по правилам составления дизайн-хуков.
Характеристики
Группировка таблицы характеристик по наборам
Требуется в подробном описании товара изменить вывод таблицы характеристики товара, объединив их, согласно наборам характеристик.
Создать файл /phpshop/templates/имя шаблона/php/hook/sorttable.hook.php с содержанием
<?/** * Вывод имени набора характеристики */functionsort_table_get_category_name($category) { $PHPShopOrm =newPHPShopOrm($GLOBALS['SysValue']['base']['sort_categories']); $data=$PHPShopOrm->select(array('name'),array('id'=>'='.intval($category)),false,array('limit'=>1));return $data['name'];}/** * Вывод сортировок для товаров таблицей */functionsort_table_hook($obj, $row) {global $SysValue; $sort = $obj->PHPShopCategory->unserializeParam('sort'); $vendor_array =unserialize($row['vendor_array']); $dis =null;if (is_array($sort))foreach ($sort as $v) { $sortCat.=' id='. $v .' OR'; } $sortCat =substr($sortCat,0,strlen($sortCat)-2);if (!empty($sortCat)) {// Массив имен характеристик $PHPShopOrm =newPHPShopOrm(); $PHPShopOrm->debug = $obj->debug; $result = $PHPShopOrm->query("select * from " . $SysValue['base']['table_name20'] . " where ($sortCat and goodoption!='1') order by num");
while ($row =mysql_fetch_assoc($result)) { $arrayVendor[$row['id']] = $row; }if (is_array($vendor_array))foreach ($vendor_array as $v) {foreach ($v as $value)if (is_numeric($value)) $sortValue.=' id='. $value .' OR'; } $sortValue =substr($sortValue,0,strlen($sortValue)-2);if (!empty($sortValue)) {// Массив значений характеристик $PHPShopOrm =newPHPShopOrm(); $PHPShopOrm->debug = $obj->debug; $result = $PHPShopOrm->query("select * from " . $SysValue['base']['table_name21'] . " where $sortValue order by num");
while ($row =mysql_fetch_array($result)) { $arrayVendorValue[$row['category']]['name'] .=", ". $row['name']; }// Создаем таблицу характеристик с учетом сортировкиif (is_array($arrayVendor))foreach ($arrayVendor as $idCategory => $value)if (!empty($arrayVendorValue[$idCategory]['name'])) {if (!empty($value['name'])) {if(empty($SortNameCatHook[$value['category']])){ $dis.= PHPShopText::tr(PHPShopText::b(sort_table_get_category_name($value['category'])),'');
$SortNameCatHook[$value['category']]=1; }if (!empty($value['page'])) $dis.=PHPShopText::tr(PHPShopText::b($value['name']) . ': ', PHPShopText::a('../page/' . $value['page'] . '.html', substr($arrayVendorValue[$idCategory]['name'], 2)));
else $dis.=PHPShopText::tr(PHPShopText::b($value['name']) . ': ', substr($arrayVendorValue[$idCategory]['name'], 2));
} } $disp =PHPShopText::table($dis); $obj->set('vendorDisp', $disp); } }returntrue;}$addHandler =array ('sort_table'=>'sort_table_hook',);
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[hook]phpshopshop="php/hook/sorttable.hook.php";
Вывод таблицы характеристик в кратком описании товара
Требуется добавить вывод таблицы с характеристиками в кратком описании товара в каталогах.
Создать файл /phpshop/templates/имя шаблона/php/hook/sort.hook.php с содержанием
По умолчанию количеством новостей для вывода на одной странице управляет опция "Количество позиций на странице в магазине", которая так же управляет выводом самих товаров. Требуется убрать эту зависимость и выводить по 100 новостей на странице.
Создать файл /phpshop/templates/имя шаблона/php/hook/news.hook.php с содержанием
<?/** * Изменение количества новостей на странице */functionnews_page_hook($obj, $data, $rout) {if($rout =='START'){ $obj->num_row=100; } }$addHandler=array ('index'=>'news_page_hook');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[hook]phpshopnews="php/hook/news.hook.php";
Вывод мини-новостей на всех страницах
По умолчанию мини-новости выводятся только на главной странице. Требуется убрать это ограничение.
Создать файл /phpshop/templates/имя шаблона/php/hook/newselement.hook.php с содержанием
<?/** * Изменение количества новостей на странице */functionnews_element_hook($obj, $data, $rout) {if($rout =='START'){ $obj->disp_only_index=false; } }$addHandler=array ('index'=>'news_element_hook');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием