#php #prestashop #hook #prestashop-1.7
#php #prestashop #перехват #prestashop-1.7
Вопрос:
В пользовательском модуле для prestashop, как можно определить исключение перехвата для специальной страницы (front controller) собственного пользовательского модуля?
Я знаю, что я могу зарегистрироваться для перехватов в install()
методе модуля, например, с помощью $this->registerHook('displayHome')
и перехваты могут быть настроены в панели администратора prestashop в improve -> design -> positions
(и там также в transplant a module
разделе). Это работает для всех перехватов, для которых public function hookDisplayX($params)
реализован метод.
При пересадке модуля можно определить исключения для страниц, на которых перехват модуля не выполняется. В результате в таблице появляется запись базы данных PREFIX_hook_module_exceptions
с именем файла модулей (формат module-<modulename>-<controllername>
), некоторым идентификатором модуля и некоторым идентификатором подключения.
Теперь вопрос в том, как бы я определил это исключение, например, во время install()
метода (или, возможно, позже). Единственная информация, которой я располагаю, — это имя файла исключения (поскольку я знаю, какой контроллер отвечает за отображение содержимого).
Ответ №1:
С помощью этого кода:
$this->registerExceptions(
Hook::getIdByName('hookNameHere'),
array(
'attachment',
'contact',
'other-page-name',
)
);
Комментарии:
1. большое спасибо, жаль, что я нигде не нашел этого в документации :/