Хуки в Престашоп используются для вывода результатов работы модуля в определенном месте страницы. Это могут быть: номер телефона в шапке сайта или блок “Популярные товары” в левой колонке.
В качестве примера рассмотрим основные хуки, в версии 1.6.х они именуются и располагаются по следующей схеме:
Также можно использовать механизм хуков в качестве обработчика событий. Например, фиксировать заход посетителя на главную страницу.
Использование хуков в модуле
Для этого в классе модуля создается публичный метод, начинающийся с “hook” и содержащий имя хука. Например, для вывода информации в левом столбце код будет выглядеть так:
public function hookDisplayNameOfHook($params) { // Код хука. }
В метод передается только одна переменная, содержащая массив параметров, отправляемых хуку.
Чтобы метод вызывался в хуке, необходимо зарегистрировать его, используя registerHook(). Регистрация обычно делается во время установки модуля.
public function install() { return parent::install() && $this->registerHook('NameOfHook'); }
При удалении модуля PrestaShop самостоятельно удалит эту регистрацию.
Использование хуков в контроллере
Для вызова хука в контроллере достаточно использовать его название с Hook::exec().
Hook::exec('NameOfHook', $params);
Добавление своего хука
Если возникает необходимость в собственном хуке, можно создать его при установке модуля.
public function install() { $this->registerHook('CustomHook'); }
Добавляем в модуль одноименную функцию:
public function hookCustomHook() { // Код хука }
В нужном месте шаблона вставляем код
{hook h='CustomHook'}