Если в инструкции указана необходимость создания файла, а в вашем шаблоне уже присутствует такой файл, то файл дополняется по правилам составления Дизайн-хуков. Для быстрого включения/выключения дизайн-хука нужно поставить знак решетки # перед его определением в config.ini, пример:
Ключ секции [hook] должен быть уникален, если требуется создать новый хук на тот же класс(ключ), то требуется объединить хуки по правилам составления дизайн-хуков.
Личный кабинет пользователя
Изменение доступных файлов отчетных документов
В лично кабинете пользователя при активном режиме синхронизации с 1С доступна загрузка документов (счетов и счет-фактур) в трех разных форматах HTML, XLS и DOC. Требуется оставить лишь расширение XLS.
Создать файл /phpshop/templates/имя шаблона/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 с содержанием
Вставить переменную @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 с содержанием