Пишем свой модуль (расширение) для Opencart
В этой системе (и ее производной ocShop) применяется подход MVC, т.ч. все файлы создаются в этой логике.
Пусть имя расширения будет extension
Создание языкового файла
Языковые файлы хранятся в
catalog\language\russian\extension\go.php
где, russian – язык сайта.
extension – название расширения
go – действие которое нужно выполнить. Т.е. отрабатываться наше расширение будет по адресу: index.php?route=extension/go
Данные хранятся в формате — переменная = значение.
Пример: $_['title1'] = 'My ext';
Создание модели
Модель располагается в catalog\model\extension\go.php
В файле нужно создать класс с именем ModelХХYY, где ХХ – в нашем случае название папки (extension), а YY – название файла (go).
Получается ModelExtensionGo .Этот класс должен быть наследником базового класса Model:
class ModelExtensionGo extends Model |
Создание контроллера
Контроллер лежит по адресу: catalog\controller\extension\go.php
Его класс будет иметь вид:
class ControllerExtensionGo extends Controller |
При вызове контроллера по умолчанию вызывается функция index(). Что бы использовать функции из модели необходимо ее подключить:
$this->load->model('extension/go'); |
Аналогичным образом можна подключать любую другую модель. Например модель OpenCart для работы с товарами подключаем так:
$this->load->model('catalog/product'); |
Теперь можно вызывать функции модели :
$aItems = $this->model_extension_go ->get_items(); |
Так же подключаем наш языковой файл:
$this->language->load('catalog/product'); |
Получить значение из языкового файла можно так:
$this->language->get(’XX’), где XX – название переменной.
Создание вида (представления/шаблона)
В файле catalog\view\theme\default\template\extension\go.tpl, описываем HTML код страницы, на которой выводится наш прайс-лист. В шаблоне используются такие переменные:
- Переменные системы OpenCart: $header, $column_left, $column_right, $footer.
- Переменные, которые передал контроллер: $heading_title, $main_title, $category $product. При создании шаблона вы должны сверстать его под свой конкретный сайт.
И все, теперь расширение доступно по адресу index.php?route=extension/go