Hook в шаблонах prestashop

Перевод рецепта по созданию 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/

Hook в шаблонах prestashop: 2 комментария

  1. Почему ничего не получилось, хук появился в позициях, распологаю в него модуль и он не появился

    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} и он там не появился, что я делаю не так?

Комментарии запрещены.