Перевод рецепта по созданию HOOK’а для Prestashop.
Шаблоны для prestashop базируются на шаблонизаторе Smarty и все модули используют хуки (hooks) как определение места положения модуля на странице.
По умолчанию в prestashop есть следущие хуки: rightColumn, leftColumn, payment, paymentReturn, updateOrderStatus, top, footer, productActions, cart, customerAccount, header, productTab, productTabContent, home и т.д.
Если же нужно создать новый хук для размещения вашего модуля, то вот краткая инструкция как это сделать:
1. Добавить описание хука в базе данные — таблица ps_hook… (ps_ это префикс prestashop в моей базе, у вас может быть иначе)
insert into ps_hook(name,title,description,position) values ('new_hook','New hook for footer page','Added for new module',1)
2. В обработчике страницы изменить код обработки хуков (например в footer.php)
было
$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');
должно стать
$smarty->assign(array(
'HOOK_RIGHT_COLUMN' => Module::hookExec('rightColumn'),
'HOOK_FOOTER' => Module::hookExec('footer'),
'HOOK_NEW' => Module::hookExec('new_hook'),
'content_only' => intval(Tools::getValue('content_only'))));
$smarty->display(_PS_THEME_DIR_.'footer.tpl');
3. Вставьте {$HOOK_NEW} в ваш smarty шаблон (в нашем случае footer.tpl)
PS. У вас должно быть что-то что публиковаться в новый хук — это может быть новый или модифицированный существующий модуль.
О Prestashop (www.prestashop.com)
Prestashop — это легковесный движок интернет-магазина. В базовой поставке уже достаточно модулей для старта магазина среднего уровня. Включенный же в стандартную поставку удобный и красивый дизайн позволяет быстро стартовать магазин. Сообществом пользователей разработанно большое количество дополнительных модулей, которые расширяют возможность базового движка. Хорошо продуманная внутреняя архитектура позволяет сторонним разработчикам легко добавять дополнительную функциональность.
источник: http://www.prestashop.com/forums/viewthread/12637/
Почему ничего не получилось, хук появился в позициях, распологаю в него модуль и он не появился
1.
insert into ps_hook(name,title,description,position)
values (‘footre’,’New hook for footer page’,’Added for new module’,1)
2.
было
$smarty->assign(array(
‘HOOK_RIGHT_COLUMN’ => Module::hookExec(‘rightColumn’),
‘HOOK_FOOTER’ => Module::hookExec(‘footer’),
‘content_only’ => intval(Tools::getValue(‘content_only’))));
$smarty->display(_PS_THEME_DIR_.’footer.tpl’);
стало
$smarty->assign(array(
‘HOOK_RIGHT_COLUMN’ => Module::hookExec(‘rightColumn’),
‘HOOK_FOOTER’ => Module::hookExec(‘footer’),
‘HOOK_FOOTRE’ => Module::hookExec(‘footre’),
‘content_only’ => intval(Tools::getValue(‘content_only’))));
$smarty->display(_PS_THEME_DIR_.’footer.tpl’);
3. вставил в footer.tpl
{$HOOK_FOOTRE} и он там не появился, что я делаю не так?
Опечатка в первом инсерте