Бортовой журнал Ктулху

Создание модуля Prestashop 1.6: хуки и контроллеры

В предыдущей статье я описал создание достаточно простого модуля. В этой статье я опишу создание модуля с собственными страницами и выполнением каких-то действий по событию или на определенной странице.

430892

Модуль со страницами

Для того чтобы у модуля были свои страницы необходимо добавить контроллер.

Если это страница для публичной части, то находиться контроллер будет по адресу:

/controller/front/

Класс контроллера должен называться следующим образом:

class mymoduledisplayModuleFrontController extends ModuleFrontController

mymodule - имя модуля.

Содержимое контроллера:

<?php
class mymoduledisplayModuleFrontController extends ModuleFrontController
{
public function initContent()
{
parent::initContent();
*/ функционал модуля /*
$this->setTemplate('display.tpl');
}
}

Доступен он будет по такой ссылке:

/index.php?fc=module&module=mymodule&controller=show

Хуки

Бывают хуки-события и хуки-расположение, причем как положение на странице, так  и на определенных страницах.

Для того чтобы вызвать действие на странице подтверждения заказа, нужен хук hookOrderConfirmation.

Добавляем в файл модуля следующий метод:

public function hookOrderConfirmation {
*/ функционал /*
}

Внимание, хук должен быть зарегистрирован, а это значит, что в функцию install необходимо добавить выов этого хука. Пример:

public function install()
 {
// Register hooks
 if (!$this->registerHook('displayProductTabContent') ||
 !$this->registerHook('displayBackOfficeHeader'))
 return false;
}