Рубрики
PrestaShop

Создание простого модуля PrestaShop — установка


Продолжаю цикл статей опубликованных на web-esse.ru о создании простого модуля PrestaShop. В сегодняшнем уроке мы установим наш простой модуль в админку.
В предыдущих уроках мы рассмотрели структуру и создали основные файлы модуля.

Урок 3. Установка

Метод install() и uninstall() позволяют контролировать, что должно происходит в случае установки и удаления модуля. Например, запись новых констант в бд, копирование файлов, создание таблиц и т.п.

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

public function install()
{
  return (parent::install());
}

Если установка пройдёт корректно — parent::install() вернёт true, в противном случае — false. Но как я уже написала во вступлении, этот метод может делать гораздо больше, чем просто вызывать родительский метод. Расширим его функционал, установив наш модуль в левую колонку и задав переменную ‘SIMPL_TPL’ со значением «test».

	public function install()
	{
		if (!parent::install() || !$this->registerHook('leftColumn') || !Configuration::updateValue('SIMPL_TPL', 'test'))
			return false;
		return true;
	}

Если хотя бы одно из наших «пожеланий» не выполниться метод install() вернёт false

Созданную нами переменную, нужно обязательно уничтожить в случае удаления модуля

	public function uninstall()
	{
		if (!parent::uninstall() ||
				!Configuration::deleteByName('SIMPL_TPL'))
			return false;
		return true;
	}

При создании модуля для PrestaShop мы впервые прибегли к помощи стороннего класса Configuration, поэтому поясню этот момент подробнее. Это объект PrestaShop, созданный специально для работы с переменными PrestaShop (они хранятся в бд, в таблице ps_configuration).

Два метода мы уже использовали:
— Configuration::updateValue(‘myVariable’, $value) // обновление или создание переменной в БД, в качестве значения можно использовать строку, число, сериализованный массив (см. пример ниже) или json объект
— Configuration::deleteByName(‘myVariable’) // удаление переменной

Рассмотрим, что ещё можно сделать с помощью методов этого класса.
— Configuration::get(‘myVariable’) // извлекает значение для указанной переменной и возвращает его пользователю.
— Configuration::getMultiple(array(‘myFirstVariable’, ‘mySecondVariable’, ‘myThirdVariable’)) // возвращает массив значений полученных переменных.

Полезные примеры:

Configuration::get('PS_SHOP_EMAIL') - вернёт контактную почту магазина 
Configuration::updateValue('MYMODULE_SETTINGS', serialize(array(true, true, false))); - записываем сериализованный массив
$configuration_array = unserialize(Configuration::get('MYMODULE_SETTINGS')); - получаем массив из данных после сериализации

В приведённом выше public function install() осталась ещё одна запись, на которой мы не акцентировали внимание — метод registerHook(). С помощью именно него мы указываем, что хотим чтоб наш модуль автоматически выводился в левой колонке (в нашем примере). В качестве параметра метод может принимать различные значения хуков: «leftColumn», «rightColumn», «header» и т.п

Результат нашей работы (архив с файлами модуля, иконками для своего модуля и инструкцией):
Скачать простой модуль для PrestaShop

Подведём итог третьего урока — теперь наш модуль для PrestaShop корректно устанавливается и выводится в левой колонке. Созданием шаблона для информации, а так же связанными с выводом информации методами в бутстрап файле мы и займёмся на следующем уроке.