Детальный анализ модуля Prestashop 1.5 (часть 1)

devModule-userinfoFolderЭта статья продолжает тему создание модуля своими руками.
Что такое модуль PrestaShop?
Расширяемость престашоп заключается в использовании модулей-небольших программ, которые используют для изменения или добавления функциональности Престашоп для более удобного и индивидуального использования движка, без необходимости редактировать его основные файлы.

Основные составляющие модуля:
-корневая папка, имеющая название такое же как и название модуля
-основной файл PHP “начальной загрузки”, расположенный в корневой папке модуля и имеющий такое же название, как и модуль.
-два логотипа модуля, отображающихся в админке Prestashop logo.gif (32×32 px) и logo.png (16×16 px).
-файлы отображения модуля, содержащие темы модуля tpl, css, js, которые расположены в суб-папках модуля:
/views/css суб-папки содержащие css файлы
/views/js суб-папки для JavaScript файлов
/views/templates/front суб-папки для файлов контроллеров модуля
/views/templates/hooks суб-папки для файлов tpl привязанных к хуку
-языковые файлы расположенные в суб папке /translations, если есть необходимость для перевода модуля
-дополнительно модуль может содержать корневую папку, файлы темы модуля tpl и файлы стилей в используемом шаблоне Prestashop в папке themes/MyTheme/modules/. Зачем эти дополнительные файлы я описывал в теме по ссылке
- конфигурационный файл config.xml
вот так на примере выглядит дерево модуля
modul
как видно в Престашоп для модулей стал применяется шаблон проектирования MVC(Model-View-Controller), только в более простой и доступной форме
200px-MVC-Process
Любой модуль после установки в интернет-магазин может взаимодействовать с одним или более крючками (hook). Крючки позволяют “зацепить” файлы темы модуля в определенной позиции. Подробнее о hook я напишу отдельную статью.
Создание первого модуля
Давайте создадим простой первый модуль, это позволит нам лучше описать его структуру. Назовем его mymodule (мой модуль).
Сначала создайте папку модуля. Он должен иметь то же имя, что и модуль, без пробелов, только алфавитно-цифровых символов, без дефиса и подчеркивания, все в нижнем регистре: / mymodule .
Эта папка должна содержать: загрузочный файл, PHP файл с таким же именем, что и папка : mymodule.php .
Для того что бы защитить основной файл от несанкционированной загрузки пользователями в начале основного файла ставим код

 

Это проверка на существование Prestashop.
Для создания модулей Престашоп используется ООП (Объектно-ориентированное, или объектное, программирование) , в которой основными концепциями являются понятия объектов и классов.
Назначаем главный класс модуля, который должен иметь такое же имя как и модуль.
mymodule.php

 

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

 

Методы установки и удаления
Теперь рассмотрим объекты установки и удаления модуля. Чтобы зарегистрировать свои собственные настройки в базе данных их необходимо включить в эти блоки. Мы этим заниматься не будем, так как создаем простой модуль.
блок установки

 

блок удаления

 

Использование Smarty
Теперь рассмотрим блоки отвечающие за вывод информации модуля во фронт-офисе

 

Отображение формы
Блок визуальной формы в бэк-офисе

 

Казалось бы код большой, но форма HelperForm(); стандартна для престашоп и мы ее не будем рассматривать. Отображается эта форма в верхней части модуля и содержит название модуля и кнопки.
часть кода

 

Создает следующие HTML-теги:

 

В принципе можно использовать способ HTML , котрый был применим в модулях для престашоп 1.4.
В заключении первой части хочу сказать, что может быть я не совсем правильно выражаю терминологию названия функций, методов, классов и блоков. Старался писать нормальным языком для тех кто не знает програмирования и как сам все понимаю.
Готовый файл mymodule.zip
Продолжение следует
До встречи на страницах webnewbie.ru

Comments (4)

Сергей
10.01.2015 - 11:21 / Ответить

“Казалось бы код большой, но форма HelperForm(); стандартна для престашоп и мы ее не будем рассматривать. ”

Убивает отмазка. Вместо того чтобы пояснить, легче всего ссылаться на “ну мол это все знают” особенно новички ну )))

10.01.2015 - 17:39 / Ответить

А Вам все выложи на тарелочке с голубой каемочкой. Напрягаться не хотим? Взять любой стандартный модуль и посмотреть(скопировать) форму HelperForm(); не догадываемся. Или зайти в бэк-офис престы и найти ссылку на официальную документацию не судьба. Так нет, вместо благодарности поливаете негативом. Спасибо я Вам скажу.

Виталий
08.01.2016 - 03:09 / Ответить

что-то не могу скачать готовый файлик, битая ссылка, а делая по примеру, при инсталляции пишет, что модуль не найден

08.01.2016 - 16:27 / Ответить

Ссылку на файл поправил.

Leave a Reply