Здравствуй, уважаемый друг!

Кажется, ты используешь AdBlock. Этот проект развивается и существует за счет доходов от рекламы.
Добавь, пожалуйста, нас в исключения.

Спасибо за понимание.

Теперь мы команда!

Модули, расширения и модификации в OpenCart 2.x

Автор: в категории Интересное в мире 13 комментариев

На протяжении последнего месяца, мне удалось более тесно познакомиться с OpenCart 2, основательно разобраться с предлагаемыми движком модификациями и установщиком модулей, а также покопаться в исходном коде OpenCart 2. Данная статья является продолжением предыдущих двух постов, посвященных первому знакомству с OpenCart 2.x а также новым возможностям OpenCart 2.x.

OpenCart 2.x - Modifications & triggers

В данном посте мы рассмотрим установщик расширений, принцип его работы, затронем тему vQmod в OpenCart 2.x, а также рассмотрим новые возможности, предоставляемые OpenCart 2.

Установщик расширений OpenCart 2.x

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

Для начала рассмотрим из чего состоит сам архив модуля .ocmod:

  1. новые файлы (файлы модуля) — файлы для загрузки (которые не затирают основные файлы движка), находящиеся в папке upload;
  2. файл install.sql для добавления таблиц в базу данных (если необходимо);
  3. файл install.xml в котором хранятся инструкции по модификации основных файлов CMS Opencart (основан на принципе xml-файлов vQmod);
  4. файл install.php который содержит код, который будет выполнен во время установки.

Архив Ocmod

Папка upload в ocmod архиве

Как видно на скриншоте выше, структура папок в папке upload полностью повторяет стандартную структуру папок Opencart. В этих папках расположены файлы, которые будут скопированы на сервер при установке расширения.

Установка расширения происходит в несколько этапов:

  1. загрузка и распаковка (в случае если это архив) файлов на сервер во временную папку system/upload/;
  2. если это просто .XML файл, то его содержимое будет записано в таблицу oc_modification и на этом установка закончена, а если же это архив с файлами (как в примере), то он будет разархивирован во временное хранилище;
  3. проверка доступа к FTP (доступ к FTP настраивается в настройках магазина);
  4. загрузка файлов из папки upload модуля;
  5. выполнение запросов из .SQL файла (обновление базы данных);
  6. внесение правок в существующие файлы из .XML файла (см. п.2);
  7. выполнение кода из .PHP файла (спасибо, Андрей Брус);
  8. проверка какие файлы будут модифицированы в ходе установки, для того чтобы выдать вам их список в окне и ожидание подтверждения об установке.

Opencart OCMOD Установка - список модифицированных файлов

В конечном итоге мы получаем скопированные новые файлы в папках нашей CMS, XML файл со сценарием (инструкциями) модификации в базе данных, и кеш этих самых модификаций в папке system/modification.

В целом система достаточно интересная и удобная для конечного пользователя, но не для разработчика. Почему? Потому что чтобы править модификации (инструкции к изменению файлов) необходимо править базу данных. При использовании классического vQmod для OpenCart для этого было достаточно править файл.

Кроме очевидного минуса с точки зрения удобства модификации инструкций, присутствует определенный плюс в данном методе хранения модификаций для файлов — более защищенное хранилище. Так как в базу данных мало кто имеет доступ, а на FTP могут иметь доступ многие (например для загрузки картинок на сервер), то данный метод может иметь преимущество, однако не стоит забывать что и на FTP можно дать доступ к определенной папке. (:

Для себя я сделал вывод, что данная система интересная, новая, удобная, но не для разработчика (: Будем следить дальше за развитием OpenCart 2, и за развитием модификаций и расширений для этой платформы.

Установка vQmod на OpenCart 2.x

Многие разработчики спрашивали, возможно ли использование vQmod как на предыдущих версиях OpenCart, и мой опыт говорит о том что можно! Просто установите его как обычно и пользуйтесь на здоровье. Если возникли проблемы, или вы располагаете иной информацией — пишите в комментариях.

OpenCart triggers

Работая над одним из проектов, я обнаружил в коде интересную строку:

$this->event->trigger('pre.admin.attribute.add', $data);

UPD: чатайте полный обзор в статье система событий в Opencart 2.x: как использовать event

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

На данный момент известно, что для регистрации функции на триггер необходимо написать:

$this->event->register('post.admin.attribute.add', 'checkout/order/send_email');

Однако больше информации внятной найти не удалось, если вы нашли что-то интересное или сами разобрались — пишите, дополним статью.

Подведем итог

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

Надеюсь, очередной небольшой экскурс по новым фукнциям OpenCart 2.x был вам полезен и вы подчерпнули много новой и полезой для себя информации. Спасибо за внимание.

UPD: ознакомьтесь с системой событий и триггеров ($this->event) в новой статье система событий в Opencart 2.x: как использовать event

Вверх!

Меню блога

Категории блога

Облако тегов