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

Этот пост — продолжение цикла статей по созданию простого модуля для PrestaShop. В предыдущем посте на блоге wp.clean я рассмотрела типичную структуру модуля, теперь, имея теоретические знания, приступаем к их практическому применению.

Урок 2. Создание простого модуля PrestaShop — «simple»

1. Создаём обязательные файлы, согласно структуре модуля рекомендованной PrestaShop
— simple.php (bootstrap файл, называется так же как папка)
— Иконки — не обязательно, но отображение графического значка возле имени в админке повышает привлекательность, да и искать его становиться легче. Для выбора иконки можно воспользоваться бесплатными сервисами или вот вам пак из 3000 иконок для модулей

2. В начале бутстрап файла должна содержаться проверка существования константы ‘_PS_VERSION_’, для предотвращения прямой загрузки и выполнения файла

if (!defined('_PS_VERSION_'))
  exit;

3. Название класса модуля должно в соответствовать названию папки и файла в стиле CamelCase.


Стиль написания составных слов, при котором несколько слов пишутся слитно без пробелов, при этом каждое слово пишется с заглавной буквы.

Согласно принципам ООП, созданный класс модуля должен наследовать родительский

class Simple extends Module {}

4. Первый метод класса:

public function __construct(){ 
parent::__construct(); 
}

Применяется для инициализации таких переменных, как имя автора, версия модуля, вкладка в админке и т.п


Напомню из основ ООП: Конструктор класса — метод, который автоматически выполняется в момент создания объекта, до вызова остальных методов класса

Рассмотрим возможные значения переменных (в модуле мы будем использовать не все):
— $this->name = ‘simple’; //название модуля
— $this->tab = ‘front_office_features’; // вкладка в админке на странице модулей
Названия вкладок
administration — Administration — Администрирование
advertising_marketing — Advertising & Marketing — Маркетинг и реклама
analytics_stats — Analytics & Stats — Статистика и аналитика
billing_invoicing — Billing & Invoices — Документы и счета
checkout — Checkout
content_management — Content Management
emailing — E-mailing
export — Export
front_office_features — Front Office Features — Модули для фронт-офиса
i18n_localization — I18n & Localization
market_place — Market Place
merchandizing — Merchandizing
migration_tools — Migration Tools — Инструменты миграции
mobile — Mobile
others — Other Modules — Другие
payments_gateways — Payments & Gateways — Платежные системы
payment_security — Payment Security — Безопасность оплаты
pricing_promotion — Pricing & Promotion — Скидки и акции
quick_bulk_update — Quick / Bulk update
search_filter — Search & Filter — Поиск и фильтры
seo — SEO
shipping_logistics — Shipping & Logistics — Доставка и логистика
slideshows — Slideshows
smart_shopping — Smart Shopping
social_networks — Social Networks

— $this->version = ‘1.0’; //версия модуля
— $this->author = ‘Web-esse.ru’; //Автор модуля
— $this->need_instance = 0; //Вывод уведомлений в панель адмнистрирования, если установлена 1. Например, для работы «simple» модуля требуется «такой то» pear пакет.
— $this->ps_versions_compliancy = array(‘min’ => ‘1.5’, ‘max’ => ‘1.5’); // Указывает совместимость с версиями, например, 1.5 и выше
— $this->dependencies = array(‘blockcart’); // Указывает, что для работы модуля требуется установить другой модуль. В качестве значения массива используется имя папки модуля.

— $this->displayName = $this->l(‘Simple module’); // Имя модуля отображаемое во вкладке, поддерживает различные переводы
— $this->description = $this->l(‘Description of my module.’); //Описание модуля так же можно задать на разных языках.
— $this->confirmUninstall = $this->l(‘Are you sure you want to uninstall?’); // Сообщение о подтверждении удаления модуля

Подведём краткий итог урока. Если сейчас загрузить модуль в админку, он появится во вкладке модули с собственными именем, описанием и т.п. Однако, если нажать на вкладку «Установить» ничего не произойдёт. Установку модуля мы рассмотрим на следующем уроке.