Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления Дизайн-хуков. Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в 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С доступна загрузка документов (счетов и счет-фактур) в трех разных форматах HTML, XLS и DOC. Требуется оставить лишь расширение XLS.
Создать файл /phpshop/templates/имя шаблона/php/hook/userorderdoclink.hook.php с содержанием
<?function userorderdoclink_mod_supplierdate_hook($obj, $value) {if (is_array($value['row'])) {// Описание столбцов$dis = $obj->caption(__('Документооборот'), __('Дата'), __('Загрузка'));$n = $value['val']['id'];foreach ($value['row'] as $row) {// Счетаif ($obj->PHPShopSystem->ifValue('1c_load_accounts')) {$link_xls = '../files/docsSave.php?orderId=' . $n . '&list=accounts&tip=xls&datas=' . $row['datas'];if (file_get_contents($link_xls)){$dis.=$obj->tr(PHPShopText::a($link_xls, __('Счет на оплату'), false, false, false, '_blank', 'b'), PHPShopDate::dataV($row['datas']), PHPShopText::a($link_xls, __('XLS'), __('ФорматExcel'), false, false, '_blank', 'b'));}}// Счета-фактурыif (!empty($row['datas_f']) and $obj->PHPShopSystem->ifValue('1c_load_invoice')) {$link_xls = '../files/docsSave.php?orderId=' . $n . '&list=invoice&tip=xls&datas=' . $row['datas'];if (file_get_contents($link_xls)){$dis.=$obj->tr(PHPShopText::a($link_xls, __('Счет-фактура'), false, false, false, '_blank', 'b'), PHPShopDate::dataV($row['datas_f']), PHPShopText::a($link_xls, __('XLS'), __('Формат Excel'), false, false, '_blank', 'b') );}}}return $dis;}}$addHandler = array('userorderdoclink' => 'userorderdoclink_mod_supplierdate_hook');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[hook]userorderdoclink="php/hook/userorderdoclink.hook.php";
Вывести приветственное сообщение после авторизации пользователя.
Создать файл /phpshop/templates/имя шаблона/php/hook/autoload.hook.php с содержанием
<?// Пример вывода дополнительного HTML кода для авторизованных пользователейif (!empty($_SESSION['UsersId'])){$disp='<Добро пожаловать, '.$_SESSION['UserLogin'].'!';PHPShopParser::set('welcome',$disp);}
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[autoload]welcome="php/element/autoload.hook.php";
Вставить переменную @welcome@
в нужное место шаблона.
Требуется закрыть доступ обычным пользователям на внешнюю часть сайта на время его разработки. Разрешить отображение только авторизованному администратору через панель управления.
Создать файл /phpshop/templates/имя шаблона/php/element/lock.inc.php с содержанием
<?// Заглушка на время заполнения сайтаif(empty($_SESSION['logPHPSHOP']))exit('Сайт заполняется...');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[autoload]lock="php/element/lock.inc.php";
Закрыть временно сайт можно так же с помощью модуля Замок.
Магазин имеет всего 3 доставки. Нужно сделать выбор доставок через радио-переключатели для облегчения выбора покупателям.
Создать файл /phpshop/templates/имя шаблона/php/hook/order.hook.php с содержанием
<?/*** Вывод доставок через переключатели*/function delivery_hook($obj){$PHPShopDeliveryArray = new PHPShopDeliveryArray();$DeliveryArray = $PHPShopDeliveryArray->getArray();$disp=null;if(is_array($DeliveryArray))foreach($DeliveryArray as $key=>$row)$disp.=PHPShopText::setInput('radio', 'dostavka_metod', $row['id'],false,false,'document.getElementById('d').value='.$key.';document.getElementById('makeyourchoise').value='DONE'',false,false,$row['city']);$disp.=PHPShopText::setInput('hidden', 'makeyourchoise', '');$obj->set('orderDelivery',$disp);return true;}$addHandler=array('delivery'=>'delivery_hook');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[hook]phpshoporder="php/hook/order.hook.php";
Требуется автоматические списывать товар со склада сразу после создания нового заказа пользователем
Создать файл /phpshop/templates/имя шаблона/php/hook/done.hook.php с содержанием
<?/*** Списываем количество со склада*/function cancellation_from_warehouse($obj, $data, $rout) {$carts = $obj->PHPShopCart->getArray();foreach ($carts as $cart) {$PHPShopOrm = new PHPShopOrm($GLOBALS['SysValue']['base']['products']);$row = $PHPShopOrm->select(array('items'), array('id' => '=' . intval($cart['id'])));if (is_array($row)) {$PHPShopOrm->clean();$items = $row['items'] - $cart['num'];$PHPShopOrm->update(array('items_new' => $items), array('id' => '=' . $cart['id']));}}}$addHandler=array ('sms' => 'cancellation_from_warehouse');
Создать файл /phpshop/templates/имя шаблона/php/inc/config.ini с содержанием
[hook]phpshopdone="php/hook/done.hook.php";