Как создать модуль на Prestashop 1.5 - 1.6

Категория: Главная. Дата публикации: 08 Марта 2015

В этой статье хочу рассказать вам, как создать простой модуль для Prestashop версий 1.5 и 1.6

С помощью модуля вы сможете добавить дополнительный функционал к вашему магазину. А это например вывести в нужном месте изображение или слайдер изображений, важную информацию о вашем магазине и т.д
Давайте начнем писать наш первый модуль, для начала перейдите в папку modules/ и там создайте новую папку "mymodule". Переходим в созданную вами папку, далее там создаем очень важный файл модуля "mymodule.php", стоит обратить внимание, что этот очень важный файл модуля должен называться также, как и папка этого модуля, то есть "mymodule".
Так отлично, здесь мы разобрались, что к чему. Двигаемся дальше, ниже я привел пример содержимого файла "mymodule.php", простой пример, как он обязательно должен выглядеть изнутри.

<?php
class MyModule extends Module
{
	public function __construct() {

		$this->name = 'mymodule'; //Название модуля, должно совпадать с название папки модуля
		$this->tab = 'front_office_features'; //Категория к которой относится модуль
		$this->version = '1.0.0'; //Версия модуля
		$this->bootstrap = 1; //Обязательно нужно указать если вы разрабатываете модуль по 1.6
		$this->author = 'DaRiuS'; //Имя или ник автора модуля
		parent::__construct();

		$this->displayName = $this->l('My Module'); //Название модуля
		$this->description = $this->l('My Module'); //Описание вашего модуля
	}
	public function install()
	{
		if (!parent::install() ||
		!$this->registerHook('displayHome'))
			return false;
		return true;
	}
	public function hookDisplayHome()
	{
		return $this->display(__FILE__, 'home.tpl');
	}
}

class MyModule extends Module красным выделено название модуля, по стандартам Prestashop оно должно быть в СamelCase формате, то есть первая буква каждого слова должна быть с большой буквы, все остальные буквы в нижнем регистре.
в __construct мы должны прописать параметры модуля:

1. имя модуля(совпадает с названием папки)
2. к какой категории принадлежит модуль $this->tab = \'front_office_features\';
3. версия модуля, обязательно должна быть в таком формате 1.0.0
4. $this->bootstrap = 1 этот параметр вашего модуля явно указывает, что ваш интерфейс настроек модуля поддерживает bootstrap
5. автор модуля
6. название модуля, которое будет отображаться в списке модулей в админке вашего магазина
7. описание модуля, которое также будет отображаться в списке ваших модулей

Далее, разберем метод модуля install, который срабатывает во время установки модуля, здесь вы можете писать любой код, который должен выполнится в тот момент когда модуль будет устанавливаться. Здесь мы добавили такой код $this->registerHook(\'displayHome\')registerHook добавляет модуль в расположения, по другому называются Hook(Хук). Хук displayHome находится на главной странице. Сам код хука находится находится ниже по коду public function hookDisplayHome ,
в этом хуке мы возвращаем шаблон home.tpl полученный с помощью вызова метода display.Сам шаблон home.tpl хука должен быть расположен в папке с модулем mymodule/views/templates/hook/home.tpl

Hello Prestashop!

Отдельно про хуки хочу отметить что метод хука в модуле должен быть назван hookНазваниеХука также должен быть в CamelCase формате

А теперь важный момент, модуль который вы создали теперь нужно установить в вашем магазине. Для этого в админ панели перейдите на вкладку модули, найдите ваш модуль по названию папки или по названию который вы указали в свойстве класса:

->displayName

Нажмите кнопку установить модуль.
Магазин сообщит вам о том что ваш модуль был успешно установлен.
В данном примере мы зарегистрировали хук модуля 
$this->registerHook(\'displayHome\') , который выводит свой контент на главной странице.


По этой ссылке вы сможете скачать исходный код этого модуля