Создание собственного хука (hook) в Prestashop 1.4 (Часть 1)

Чтобы название хука отвечало его назначению — расположению, назовем хук TOPUNDER. Это будет самая верхняя часть страницы, из которой будет просто и удобно управлять модулями из админпанели.
Как известно, все модули в Prestashop имеют свое будущее положение к которому они могут быть привязаны, и это положение описано в коде файла любого модуля. Но так как все модули в магазине пользуются стандартными хуками, нам понадобится еще и модуль, который будет пользоваться вновь созданным нами хуком TOPUNDER. С создания модуля стоит и начать.
Модуль, который мы создадим, будет самый простой, его задачей будет вывести текст Hello from UNDER TOP HOOK. Назовем его BlockTopUnderHeader.
Для этого создадим папку BlockTopUnderHeader в папке modules и создадим необходимые файлы:
1. Файл модуля blocktopunderheader.php
2. Файл шаблона модуля blocktopunderheader.tpl
3. Файл иконка модуля logo.gif
В файле модуля blocktopunderheader.php неоходимо прописать вот такой код:
if (!defined('_CAN_LOAD_FILES_')) exit; class BlockTopUnderHeader extends Module { public function __construct() { $this->name = 'blocktopunderheader'; $this->tab = 'front_office_features'; $this->version = '1.0'; $this->author = 'Webproggi.ru'; $this->need_instance = 0; parent::__construct(); $this->displayName = $this->l('Block with links at the under top position of the page'); $this->description = $this->l('Displays a block with links such as sitemap, myaccount and others.'); } public function install() { if (!$this->addTopUnderHook() OR !parent::install()) return false; return true; } public function uninstall() { return (parent::uninstall() AND $this->removeTopUnderHook()); } public function hookTopunder($params) { return $this->display(__FILE__, 'blocktopunderheader.tpl'); } private function addTopUnderHook() { return Db::getInstance()->Execute('INSERT INTO <code>'._DB_PREFIX_.'hook</code> (<code>name</code>, <code>title</code>, <code>description</code>, <code>position</code>) VALUES (\'topunder\', \'Hook under top\', \'Display under top hook\', 1)'); } private function removeTopUnderHook() { return Db::getInstance()->Execute('DELETE FROM <code>'._DB_PREFIX_.'hook</code> WHERE <code>name</code> = \'topunder\''); } }
Здесь мы создали конструктор и пять дополнительных функций. В конструкторе прописали нужные название, версию, описание и прочую текстовую информацию нашего модуля. Далее идут функции привязки модуля к хуку TOPUNDER, а также установки и удаления модуля. В них создается — записывается хук TOPUNDER в таблицу магазина а также удаляется, при установке или удалении нашего модуля.
Далее необходимо создать blocktopunderheader.tpl — модуль шаблона, в нем прописываем следующий код:
<div class="block_topunderheader"> {l s='Hello from UNDER TOP HOOK' mod='blocktopunderheader'} </div>
Здесь всё просто и понятно, подключаемый модуль будет выводить надпись Hello from UNDER TOP HOOK, которую затем можно перевести через админпанель.
На этом часть закончена, в следующей части будет показано как подключить и прописать хук непосредственно в код самого магазина.