Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Устройство Opencart 2.0 (OC2): работа инсталлятора, модификаций и модулей

27 января 2015 г. Ruslan Brest Просмотров: 3798 RSS 2
Howto » E-commerce » OpenCart
, ,

Мда… Синтаксические ошибки на этапе формирования модификации запросто укладывают весь сайт. OCMOD формирует файл с ошибкой, дальше ВСЁ… ФИНИШ. Пока не пофискишь - не поедет. Учитывая, что синтаксическая ошибка может запросто возникнуть при конфликне модулей, система будет слабо автоматизируемой. Должен работать квалифицированный админ. Сценарий примерно такой:

  • ставим модификацию
  • обновляем кэш
  • если система загнулась:
    • удаляем system/modification/*
    • заходим в систему как админ и удаляем проблемную модификацию
    • перегенерируем кэш
    • пишем рекламацию

Чем модификация отличается от инсталлятора

Модификация работает только в каталоге system/modification . Ей не нужны права на запись по всему движку: это инсталлеру надо. И достигается через фтп-функции и фтп-пользователя.

Модификация исходных файлов не меняет. Результат работы записывается в system/modification .

Что такое инсталлятор, модификация и модуль. Их взаимодействие

По большому счёту, в системе модуля нет вообще. Причина в том, что в принципе отсутствует интерфейс взаимодействия внешнего кода с ядром. Некоторые зачатки появились во второй версии с внесением events. И всё. В остальном - есть некоторое изменение кода, состоящее из новых файлов и изменения старых, а также механизм настройки параметров и визуальной привязки кода к layout. Вот это всё горделиво названо словом “модуль”. И дальше есть инсталлятор, который вносит новые файлы в систему и регистрирует xml для внесения изменений в существующие файлы. А модификация просто реализует эти изменения. Вот и всё.

Процедура инсталляции размещает по местам новые файлы и записывает в таблицу XML. Кроме того, она исполняет скрипты install.sql & install.php . Больше она не делает ничего.

Модификация при нажатии кнопки “Refresh”:

  • очищает кэш модификаций system/modification/*
  • ищет system/modification.xml и исполняет его
  • ищет system/*.ocmod.xml и исполняет их. Это “форточка” для девелопера.
  • последовательно извлекает из таблицы oc_modification все xml, запись за записью, и создаёт новый кэш из модифицированных файлов.

Всё

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Более 1000 готовых шаблонов Opencart для интернет-магазинов
Комментариев: 2
  1. Получается, что вторая версия так и не ушла от кустарщины, проблем с совместимостью и необходимости ковыряться во внутренностях?

  2. 2015-01-28 в 23:21:06 | Ruslan Brest

    Да. И ещё долго уходить будет. Пока что появились только зачатки более нормального подхода к взаимодействию сторонних модулей с ядром.

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)