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

Создание собственного хука (hook) в Prestashop 1.4 (Часть 1)
Довольно часто возникает необходимость создать собственный хук (hook) в Prestashop. Это обусловлено расширением функционала и удобством пользования модулями, к примеру когда их много. В этой статье речь пойдет о создании хука, который будет располагаться в самом верху страницы, выше хука TOP.


Чтобы название хука отвечало его назначению — расположению, назовем хук TOPUNDER. Это будет самая верхняя часть страницы, из которой будет просто и удобно управлять модулями из админпанели.

Как известно, все модули в Prestashop имеют свое будущее положение к которому они могут быть привязаны, и это положение описано в коде файла любого модуля. Но так как все модули в магазине пользуются стандартными хуками, нам понадобится еще и модуль, который будет пользоваться вновь созданным нами хуком TOPUNDER. С создания модуля стоит и начать.

Модуль, который мы создадим, будет самый простой, его задачей будет вывести текст Hello from UNDER TOP HOOK. Назовем его BlockTopUnderHeader.

Создание собственного хука (hook) в Prestashop 1.4 - создание модуля

Для этого создадим папку 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, которую затем можно перевести через админпанель.

На этом часть закончена, в следующей части будет показано как подключить и прописать хук непосредственно в код самого магазина.

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

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

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

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

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

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