PHPShop Micro Modules

Материал из PHPShop CMS

Перейти к: навигация, поиск

Содержание

Введение

Модульная архитектура в PHPShop Micro позволяет создавать независимые мини-модули, работающие в связке с основной логикой. Стандарт модулей реализует возможность расширения функционала системы Micro без каких-либо ограничений для сторонних разработчиков и поставлять дополнительные модули, как независимые продукты.

Принцип работы

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

Основные принципы модульности:

  • Независимость кода от общей логики
  • Перехват глобальных переменных
  • Перехват и создание нового ЧПУ
  • Легкая установка и удаление

Образно говоря, создав модуль, можно перехватывать общие глобальные переменные для главных шаблонов index.tpl и shop.tpl, создавать новые виртуальные категории или менять существующие (/page/, /catalog/ и т.д.), и внедрять интерфейсы управления модулем в общий стиль административной панели через простой стандарт подключения модуля, описанный на языке XML.

Описание файловой системы модуля

Все модули находятся в папке phpshop/modules/имя модуля.

  • templates - шаблоны
  • core - файлы для создания ЧПУ( site.ru/catalog/ и т.д.)
  • inc - файлы основной логики
    • inc/config.ini - файл конфигурации
  • class - файлы с классами основной логики

Подключение ЧПУ

Для создания нового виртуального раздела ( site.ru/catalog/ и т.д.) требуется внести в конфигуратор модуля config.ini запись о новом разделе формата уникальное имя нового раздела = "путь до файла логики", пример:

[core]
catalog="./phpshop/modules/catalog/core/catalog.core.php";
......

Если уникальное имя нового раздела совпадает с уже существующим разделом, то главным считается файл модуля, а основная логика из папки phpshop/core/ не учитывается. Данный способ позволяет полностью заменять основную логику платформы. Для облегчения и сокращения кода можно создавать core-файлы модуля, поддерживаемое наследие от основной логики phpshop/core/, внося только точечные изменения в файл, не затрагивая другие стороны работы раздела.

Lifebelt.png Виртуальный раздел использует функции основного ядра системы  PHPShopCore.

Включение/Выключение

Для активирования модуля необходимо прописать параметр enabled="1" в конфигуратор модуля phpshop/modules/имя модуля/inc/config.ini

[system]
enabled="1";

Для выключения следует указать enabled="0";


Автозагрузка

Для включения логики в автозагрузку требуется внести в конфигуратор модуля запись папка модуля = "путь до файла загрузки", пример:

 
[autoload]
catalog="./phpshop/modules/catalog/inc/catalog.inc.php";
......

Указанный файл phpshop/modules/catalog/inc/catalog.inc.php должен существовать. Т.к. блок активной логики модулей находится ниже оновного блока, то этим приемом можно перехватывать и переписывать глобальные переменные.

Доступные для перехвата переменные:

  • @leftMenu@
  • @rightMenu@
  • @topMenu@
  • @mainContent@
  • @mainContentTitle@

Шаблоны

Если модуль использует шаблоны дизайна, то требуется внести в конфигуратор модуля запись о шаблонах формата уникальное сокращенное имя шаблона = "путь до файла шаблона", пример:

[templates]
catalog_menu_forma="./phpshop/modules/catalog/templates/catalog_menu_forma.tpl";
catalog_page_forma="./phpshop/modules/catalog/templates/catalog_page_forma.tpl";
catalog_page_list="./phpshop/modules/catalog/templates/catalog_page_list.tpl";
......

Для доступа к шаблонам можно воспользоваться классом PHPShopModules:

$PHPShopModules = new PHPShopModules();
$PHPShopModules->getParam("templates.catalog_page_list");

или

$GLOBALS['SysValue']['templates']['catalog']['catalog_page_list'];


Отладка

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

Документация

Подробная документация по коду в формате PHPDoc доступна по адресу: http:/doc.phpshopcms.ru/micro/