Категории

Разработка новых каналов продуктов

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

Функциональность каналов администратора

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

Все файлы администратора находятся в папке admin/. Вы найдете четыре папки в папке admin/:

  1. controller
  2. view
  3. language
  4. model

Для всех каналов продукта требуется по крайней мере один файл в каждой из папок вида и контроллера. Для некоторых потребуется файл в каждой из папок модели и языка. Обычно файлы имеют одинаковое имя, за исключением того, что файл представления имеет другой суффикс (.tpl или .twig). Мы пройдемся по этим файлам один за другим.

Контроллер

Первый файл, который Вы создадите, будет контроллером страницы интерфейса администратора Вашего продукта. OpenCart автоматически идентифицирует существующие каналы товаров, просто прочитав папку admin/controller/feeds Вашего магазина. Любые файлы каналов товаров, существующие в этой папке, будут автоматически отображаться на странице Каналов Продукта, и на странице Пользовательские разрешения. Вы можете вызвать файл вашего контроллера my_feed.php.

Файл контроллера будет иметь функцию, определенную как public function index(). Это общедоступный 'page', который будет показан, когда нажата Кнопка Редактирования, и где форма просмотра будет представлена. Представленные данные будут обработаны в этой функции и сохранены в `settings` таблицы базы данных через объект конфигурации контроллера.

Вы также можете иметь функцию, определенную как public function install(). Эта функция будет срабатывать при нажатии на ссылку установки на странице Расширения > каналы. Точно так же функция определяется как public function uninstall() будет срабатывать при нажатии на ссылку удаления. Вы можете использовать эти функции для создания и удаления любых структур (таких как таблицы базы данных или настройки конфигурации), требуемых Вашим каналом. Хорошей практикой является создание функции удаления для очистки любых изменений, внесенных Вашим каналом.

Представление

Второй необходимый файл для интерфейса администратора Вашего канала - это файл представления. Это будет создано в папке admin/view/template/feed, и будет иметь суффикс .tpl (.twig). Это стандарт для файлов просмотра OpenCart. В этом файле Вы создадите форму для пользователя, чтобы заполнить и отправить. Он будет отправлен в функцию индекса контроллера. Самый простой способ создать файл представления - это скопировать и вставить существующий аналогичный файл представления и отредактировать форму, чтобы она содержала правильные поля для параметров конфигурации Вашего канала. Вы можете позвонить в Ваш файл просмотра my_feed.tpl (my_feed.twig).

Язык

Третий файл, который Вы обычно создаете для любого канала, - это языковые файлы. Вам понадобится один языковой файл для каждого языка, с которым Ваш канал совместим. Языковой файл будет находиться в папке admin/language/<language name>/feed. Он просто содержит ассоциативный массив PHP вызываемый $_, который содержит внутреннее имя в качестве ключа и перевод в качестве значения. Вы можете назвать Ваш языковой файл my_feed.php, такой же, как файлы Вашего контроллера и модели.

Модель

Для каналов редко требуется файл модели на стороне администратора. Однако, если Ваш канал использует собственную таблицу базы данных или пользовательский запрос для создания данных определенного формата, Вы можете написать файл модели. Примером этого может быть, если Вы пишете фид счетчика посетителей, где каждый посетитель хранится в таблице базы данных со своим IP-адресом и количеством посещений. Затем Вы можете создать файл модели с функцией для определения и создания этой дополнительной таблицы в базе данных OpenCart. Файл модели будет находиться в папке admin/model/feed. Вы можете вызвать файл модели my_feed.php, такой же, как Ваш контроллер и языковые файлы.

Функциональность фронтенд канала

Внешний интерфейс Вашего фида следует той же схеме, что и интерфейс администратора, который только что описан. То, что Вы будете включать в каждый из Ваших файлов внешнего интерфейса, будет в значительной степени зависеть от того, что должен делать Ваш канал. Канал может обращаться к любым файлам моделей, которые уже существуют в OpenCart, Вам не нужно писать собственные запросы к базе данных, если такой же запрос уже существует. Например, модель catalog/product содержит много полезных запросов для получения продуктов. Использование этих функций модели должно быть предпочтительнее, чем изобретать велосипед.

Основное отличие внешнего интерфейса Вашего канала заключается в том, что Ваш файл представления будет находиться в папке catalog/view/theme/(themename)/template/feed. Это значительно более глубокая структура папок для файла представления администратора из-за тем. Магазин OpenCart может иметь много разных доступных тем интерфейса, но только один шаблон администратора. (themename)

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