Продолжаю цикл статей опубликованных на 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 корректно устанавливается и выводится в левой колонке. Созданием шаблона для информации, а так же связанными с выводом информации методами в бутстрап файле мы и займёмся на следующем уроке.