Создаем свой первый модуль для OpenCart

Вернуться
Опубликовано: 18.02.2015 г.

OpenCart – это очень популярный движок (CMS), который позволяет без лишних затрат времени и сил создать современный интернет-магазин, оснащенный всем необходимым для успешной работы. Разработчики очень любят эту CMS за модульность, легкость в установке и настройке, а особенно – за большое количество надстроек. Если какой-то функции нет в базовой версии OpenCart, почти всегда можно найти и установить стороннее решение – благо их уже написано более 8 тысяч, и эта цифра непрерывно растет. Однако бывают ситуации, когда стоит очень специфическая задача, и подходящего расширения не существует в природе. Но и это не беда: имея базовые знания PHP, без проблем можно написать собственный модуль. Об этом и будет рассказано в этом материале.

С чего начать: основа модуля в OpenCart

Прежде, чем приступать к написанию кода, следует рассмотреть структуру стандартного модуля в движке OpenCart. Как известно, здесь реализован принцип MVC, который позволяет легко поддерживать уже готовые решения. Это реализовано за счет разделения модуля на 4 части, каждая из которых выполняет свою обособленную роль:

Начинаем создавать собственный модуль

Теперь, когда структура понятна, можно начинать писать код. Для примера рассмотрим простое расширение, которое будет выводить прайс-лист интернет-магазина на специально созданной странице. Назовем наш модуль, к примеру, price, и создадим заготовки для будущих элементов согласно вышеописанной структуры:

Языковой файл

Начнем с самого легкого – языкового файла. Его структура очень простая и понятная. К примеру, заголовок страницы может выглядеть примерно так:

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

Модель

При создании модели, равно как и контроллера, нужно позаботиться о том, чтобы все переменные находились в одном и том же классе. Также нужно соблюсти правила именования класса – его имя должно начинаться со слова Model, после чего идет название родительской папки и нашего модуля. В данном случае, класс будет называться ModelPricePrice. Конечно, именовать класс можно и по-другому, но зачем выбиваться из общепринятых стандартов?

Вновь созданный класс должен наследовать базовый класс системы, на основании которого он создан. В данном случае, базовым классом является Model:

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

Контроллер

Что касается именования нашего класса контроллера и его наследования, то здесь всё в точности повторяет ситуацию с моделью:

Чтобы иметь возможность взаимодействовать с нашей новосозданной моделью, нужно ее подключить. За это отвечает такой код:

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

Все данные, которые будет выводить шаблон, нужно записать в виде конструкции $this-> data[’var’], где ’var’ – это переменная из шаблона. Например, для того чтобы записать в шаблон переменную с массивом всех категорий модуля, мы напишем:

Шаблон

Оформление шаблона также достаточно простое. Вам понадобятся знания HTML, а также переменные – как стандартные ($header, $footer, $column_left, $column_right и т.д.), так и переданные контроллером – например, $category. Далее шаблон верстается под общее оформление вашего сайта.

Интеграция модуля на сайт

Чтобы ваш модуль отображался на сайте, нужно его добавить в виде ссылки в код основного шаблона. В нашем случае можно добавить ссылку на прайс-лист в шапку магазина в виде одного из элементов навигационного меню:

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

P.S. В дальнейшем мы будем развивать эту тему и разберем более сложные примеры создания модуля для OpenCart.

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

6655 1

Один комментарий на «“Создаем свой первый модуль для OpenCart”»

  1. telega:

    Все было здорово до момента «Интеграция модуля на сайт»… Правильно было бы:
    <a href="»>Прайс-лист

    А в controller/common/header.php в разделе объявления остальных ссылок добавить:
    $data[‘pricelist_url’] = $this->url->link(‘price/price’,»,’SSL’);

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *