Создайте свой первый модуль OpenCart 4: пошаговое руководство

Создайте свой первый модуль OpenCart 4: пошаговое руководство
OpenCart 4 - это платформа с открытым исходным кодом на PHP/MySQL, использующая архитектуру MVC-L: Model, View, Controller и Language. В этом руководстве мы создадим простое расширение (extension), которое в админке имеет форму настроек, а на витрине выводит приветственное сообщение. Цель - понять структуру файлов, а не написать сложный код.
Структура MVC-L
OpenCart четко разделяет стороны админки (admin) и витрины (catalog) с отдельными контроллерами. Каждый модуль обычно имеет четыре типа файлов.
Основные файлы
- Controller - логика (admin/controller/extension/...)
- Model - слой данных (admin/model/...)
- View/Template - шаблон Twig (admin/view/template/...twig)
- Language - тексты (admin/language/en-gb/...)
Шаг 1. Контроллер админки и языковой файл
Создайте контроллер в файле admin/controller/extension/hello/module/hello.php. Контроллер загрузит языковой файл, прочитает настройки из модели настроек и передаст их в шаблон. Языковой файл admin/language/en-gb/extension/hello/module/hello.php содержит все тексты интерфейса без их жесткой фиксации в коде.
Шаг 2. Шаблон админки (Twig)
Форма настроек пишется в шаблоне Twig admin/view/template/extension/hello/module/hello.twig. Здесь вы создаете HTML-форму с полями (например, текст приветствия и статус включения), которые сохраняются в таблице setting через стандартную систему настроек OpenCart.
Шаг 3. Сохранение настроек
В OpenCart 4 настройки модулей обычно хранятся как ключи настроек (например, module_hello_status и module_hello_text). Контроллер админки обрабатывает действие save, проверяет ввод и сохраняет значения. Важно проверять права пользователя (permission) перед сохранением.
Шаг 4. Сторона витрины (catalog)
На витрине создайте отдельный контроллер catalog/controller/extension/hello/module/hello.php, который читает сохраненную настройку и рендерит шаблон Twig catalog/view/template/extension/hello/module/hello.twig. Таким образом, один модуль имеет отдельную логику для админки и публичной части.
Шаг 5. Упаковка как OCMOD
В OpenCart 4 расширения распространяются как пакет OCMOD - ZIP-архив с файлом install.json в корне. install.json описывает название, версию, автора и совместимую версию OpenCart. Файлы размещаются в соответствующих папках внутри архива.
Поля install.json
- Название и версия
- Автор и ссылка
- Совместимая версия OpenCart
Шаг 6. Установка из меню Extensions
Войдите в админ-панель, перейдите в раздел Extensions, загрузите ZIP через Extension Installer, затем активируйте модуль в списке Modules. После этого можно открыть форму настроек, заполнить текст приветствия и проверить результат на странице магазина.
Заключение: Создание первого модуля - это в основном вопрос понимания структуры MVC-L и правильной упаковки через OCMOD. Освоив этот шаблон, вы сможете создавать более сложные расширения на той же основе.

