Что такое модуль PrestaShop?

Опубликовано Опубликовано в рубрике prestashop, Руководство разработчика PrestaShop, Русская документация PrestaShop 1.6, Создание модулей PrestaShop

Что такое модуль PrestaShop?

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

Технические принципы модуля

Модуль PrestaShop состоит из основного файла PHP с таким количеством файлов PHP, сколько необходимо, и всех файлов изображений и шаблонов (.tpl), необходимых для отображения информации.

Давайте посмотрим пример с PrestaShop модулем blockuserinfo :

Любой модуль PrestaShop, однажды установленный в интернет-магазине, может взаимодействовать с одним или несколькими «хуками». Хуки позволяют подключать / присоединять свой код к текущему виду во время выполнения кода (т.е. при отображении корзины или списка товаров при отображении текущего запаса и т.д.). В частности, хук является ярлыком для различных методов, доступных из объекта Module, как назначено этому хуку.

Принципы работы модулей

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

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

Модули могут быть сконфигурированы по мере необходимости. Чем больше они будет настраиваемы, тем легче будет их использовать.

Одним из основных преимуществ модуля является добавление функций в PrestaShop без необходимости редактировать его основные файлы, что упрощает выполнение обновления PrestaShop без переноса всех основных изменений.

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

Структура файлов PrestaShop

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

Вот как организованы файлы:

  • /admin (Имя настраивается при установке): содержит все файлы PrestaShop, относящиеся к бэк-офису. При доступе к этой папке вашим браузером вас попросят предоставить надлежащую идентификацию по соображениям безопасности.
    Важно: Вы должны обеспечить защиту этой папки с помощью .htaccess или .htpasswd файла!
  • /cache: Содержит временные папки, которые сгенерированы и повторно используются для облегчения загрузки сервера..
  • /classes: Содержит все файлы, относящиеся к объектной модели PrestaShop (некоторые из них используются для фронт-офиса, другие для бэк-офиса). Каждый файл представляет (и содержит) класс PHP и его методы / свойства.
  • /config: Содержит все файлы конфигурации PrestaShop. Вы не должны никогда редактировать их, так как они напрямую обрабатываются установщиком PrestaShop и бэк-офисом.
  • /controllers: Содержит все файлы, относящиеся к контроллерам PrestaShop — в Model-View-Controller (или MVC), архитектуре программного обеспечения, используемой PrestaShop. Каждый файл управляет определенной частью PrestaShop..
  • /css: Содержит все файлы CSS, которые не привязаны к темам — они в основном используются бэк-офисом PrestaShop.
  • /docs: Содержит некоторую документацию, лицензии и образцы файлов импорта. 
    Примечание
    : Ее следует удалить в промышленной среде.
  • /download: Содержит виртуальные товары, которые могут быть загружены пользователем, заплатившим за них. Файлы хранятся с именем файла в md5
  • /img: Содержит все изображения, значки и файлы изображений PrestaShop по умолчанию, то есть те, которые не относятся к теме. Здесь вы можете найти картинки для категорий товаров(/c sub-folder), для товаров(/p sub-folder), и для самого бэк-офиса (/admin sub-folder).
  • /install: Содержит все файлы, связанные с установщиком PrestaShop. Вам лучше удалить его после установки, чтобы повысить безопасность.
  • /js: Содержит все файлы JavaScript, которые не привязаны к темам. Большинство из них принадлежат бэк-офису. Здесь также вы найдете структуру jQuery.
  • /localization: Содержит все файлы локализации PrestaSho- файлы, содержащие локальную информацию, такую ​​как валюта, язык, налоговые правила и группы налоговых правил, штаты и различные единицы измерения используемые в выбранной стране (объем в литрах, вес в килограммах , и т.д.).
  • /log: Содержит файлы журнала, созданные PrestaShop на разных этапах, например, во время процесса установки
  • /mails: Содержит все HTML и текстовые файлы, связанные с электронными сообщениями, отправленными PrestaShop. Каждый язык имеет свою конкретную папку, где вы можете вручную отредактировать их содержимое, если хотите. PrestaShop содержит инструмент для редактирования ваших электронных писем, расположенных в бэк-офисе, в разделе Localization
  • /modules: Содержит все модули PrestaShop, каждый в своей собственной папке. Если вы хотите окончательно удалить модуль сначала удалите его из бэк-офиса, затем вы должны удалить его папку.
  • /override: Это специальная папка, появившаяся с PrestaShop 1.4. Используя обычную папку / имя файла PrestaShop, можно создавать файлы, которые переопределяют классы или контроллеры PrestaShop по умолчанию. Это позволяет изменять основное поведение PrestaShop, не касаясь исходных файлов, сохраняя их в безопасности для следующего обновления.
    Примечание: Переопределения не рекомендуются для модулей, которые вы намерены распространять / продавать, и строго запрещены в партнерских модулях. Держите их в собственном магазине.
  • /pdf: Содержит все файлы шаблонов ( .tpl ), относящиеся к созданию файла PDF (счет-фактуры, листы доставки и т.д.). Измените эти файлы, чтобы изменить внешний вид файлов PDF, создаваемых PrestaShop.
  • /themes: Содержит все установленные в данный момент темы, каждая в своей собственной папке.
  • /tools: Содержит внешние инструменты, встроенные в PrestaShop. Например, вы найдете здесь Smarty (движок шаблона / темы), TCPDF (генератор файлов PDF), Swift (почтовый клиент), PEAR XML Parser (инструмент PHP) и т.д.
  • /translations: Содержит подпапку для каждого доступного языка. Однако, если вы хотите изменить перевод, вы должны сделать это, используя внутренний инструмент PrestaShop, и не редактировать их непосредственно в этой папке.
  • /upload: Содержит файлы, которые будут загружаться клиентами для настраиваемых продуктов (например, изображение, которое клиент хочет напечатать на кружке).
  • /webservice: Содержит файлы, которые позволяют сторонним приложениям обращаться к PrestaShop через свой API.

Папки модулей

Модули PrestaShop находятся в /modules Которая находится в корне главной папки PrestaShop. Это верно как для модулей по умолчанию (поставляется с PrestaShop), так и сторонних модулей, которые впоследствии установлены.
Модули также могут быть частью темы, если они действительно специфичны для нее. В этом случае они будут или сами по себе в /modules папке, или находиться по следующему пути: /themes/[my-theme]/modules

Каждый модуль имеет свою собственную подпапку внутри /modules папки: /bankwire/birthdaypresent, etc.

О кеше

/cache/class_index.php Файл содержит ссылку между классом и файлом декларации. Если есть проблема с кешированием, этот файл можно безопасно удалить.

/config/xml Папка содержит список всех базовых модулей:

  • default_country_modules_list.xml
  • must_have_modules_list.xml
  • tab_modules_list.xml

Когда фронт офис глючит и не отражает ваши изменения и очистка кеша браузера неэффективна, вы должны попробовать очистить следующие папки:

  • /cache/smarty/cache
  • /cache/smarty/compile