Использование хуков в prestashop 1.6.x и 1.7.x — продолжение

Использование хуков в prestashop 1.6.x и 1.7.x - продолжение
После последней статьи о хуках вышли новые версии престашоп и произошли дополнения в плане объявления хуков. Эти дополнения сделали комфортным работу в плане создания своих собственных хуков для фронт офиса prestashop версий 1.6 и 1.7. Об этом и пойдет речь в этой статье.


В версиях престашоп 1.6 и 1.7 есть возможность регистрации хука в коде создаваемого модуля. Рассмотрим пример — создадим хук, который будет вызываться из Smarty шаблона темы таким простым кодом:

где displayPrimerHook — название хука, primermodule — название модуля.

Для такого варианта обработки хука при установке модуля необходимо зарегистрировать хук в коде php:

Регистрация хука происходит именно здесь:

И создать обработчик функцию хука:

После установки модуля и вызова кода из шаблона Smarty:

Будет происходить его обработка, согласно кода функции обработчика.

Вызывать зарегистрированный хук можно и таким динамическим видом из кода php:

или из Smarty шаблона:

Код, который вызывается хуком, должен быть также определен в виде функции.

Для версии prestashop 1.7 появилась возможность регистрации хука в файле конфигурации темы theme.yml в блоке hooks. Там же можно прописать модули для этого хука, выглядит всё так:

Использование хуков в 1.7.x в theme.yml

Для вызова хука из шаблона Smarty применяется такой вид:

Регистрация хука через файл конфигурации, работает при установке темы.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 3 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

2 комментария к записи “Использование хуков в prestashop 1.6.x и 1.7.x — продолжение”

  1. Дмитрий:

    Что такое «код модуля»?
    Какой «код обработки хука» нужно писать, просто для того, что бы модуль отображался в новом хуке?

    • Код модуля – php код.
      Код обработки хука – php код, обрабатывающий эту функцию. К примеру echo»Kod obrabotki»;

Оставить комментарий

Ваш адрес email не будет опубликован.