Конвертация модулей OpenCart с 1.5.х до 2.х.х

Конвертация модулей OpenCart с 1.5.х до 2.х.х

От автора: С релиза OpenCart 2.x.x прошло уже достаточно времени, и на данный момент, похоже, все стабилизировалось (насколько это относится к API ядра). Большая часть популярных расширений поддерживает версии 2.х.х, но код 1.5.х никуда не делся. В сети вы найдете множество расширений для мигрирования с 1.5.х на последнюю версию.

Есть, конечно, определенные ограничения с расширениями. Они не умеют конвертировать все подряд, особенно кастомные модули. В этой статье мы рассмотрим код основных компонентов модуля OpenCart. Затем узнаем, как конвертировать OpenCart модули в совместимый с OpenCart 2.x.x. Не будем разглагольствовать, перейдем к сути!

Изменения в файле контроллера

В этом разделе мы рассмотрим необходимые изменения в коде файла контроллера. В качестве примера я выбрал файл account.php в папке catalog/controller/account

URL редирект

Рассмотрим код редиректа на версиях 1.5.х. В старой версии метод redirect входил в абстрактный класс Controller, поэтому его можно было вызывать напрямую с помощью объекта $this.

Как теперь это выглядит в версии 2.х.х. В последней версии метод redirect принадлежит классу Response, поэтому и доступ к нему осуществляется через объект класса.

Загрузка файлы языка

В 1.5.х необходимо было использовать следующий код для загрузки соответствующего файла языкового модуля.

В OpenCart 2.x.x необходимо использовать слегка измененный код.

Присвоение переменных

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

В версии 1.5.х было так:

В 2.х.х так:

Как видите, в последней версии массив $data подготавливается отдельно и передается как аргумент представления. В ранней версии это было свойство абстрактного класса Controller.

Хлебные крошки

В последней версии не нужен ключ массива separator.

Код 1.5.х:

То же самое можно записать по-другому:

Назначение дочерних шаблонов

В 1.5.х для назначения всех дочерних шаблонов типа header, footer, column_left и т.д. необходим был массив.

В 2.х.х для этого нужен метод controller класса Loader.

Назначение шаблонов

В ранней версии OpenCart назначение и рендер шаблонов можно было сделать так.

В последней версии код немного короче.

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

Относительно изменений контроллера все. С помощью чеклиста выше вы теперь можете конвертировать код контроллера со старой на новую версию.

Изменения в файле модели

Хотя файлы модели почти идентичны в обеих версиях, в последней версии OpenCart была представлена новая функция Event Notifications. Отличная концепция, с помощью которой можно запускать определенные события, тем самым информирую соответствующие обзорщики при их доступности.

С помощью Event Notifications можно разрешить модификацию данных другими модулями, которые реализуют обзорщики для связанных событий до сохранения в базу данных. Взглянем на пример кода из файла catalog/model/account/address.php.

Я вызову событие перед добавлением или обновлением адреса покупателя. Это позволяет другим модулям изменять адрес до его сохранения в базу данных. По сути, это единственное главное изменение в модели. Теперь вы тоже можете вызывать события из других компонентов модуля.

Изменения в файле представления

В последнем разделе этого урока мы обсудим изменения компонента view модуля. Введение библиотеки BootStrap – одно из основных изменений, которое сделало шаблоны адаптивными. Конечно, ваши старые шаблоны будут работать в последней версии тоже, но они не будут адаптивными. OpenCart 2.x.x придерживается подхода mobile first, поэтому вы не можете игнорировать адаптивность шаблона.

Откройте catalog/view/theme/default/template/account/account.tpl. В файле можно заметить классы CSS типа «col-sm-6» and «col-sm-9» – индикаторы присутствия библиотеки BootStrap. BootStrap теперь лежит в ядре, поэтому можно использовать ее функции.

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

Для сегодняшней статьи достаточно. Уверен, что описанные выше шаги помогут вам конвертировать ваши модули с 1.5.х до 2.х.х.

Заключение

Сегодня мы обсудили, какие изменения необходимо внести в существующие файлы модулей 1.5.х, чтобы конвертировать их в 2.х.х. Надеюсь, вам понравилось. Не стесняйтесь делиться мыслями по теме!

Автор: Sajal Soni

Источник: //code.tutsplus.com/

Редакция: Команда webformyself.

Метки:

Похожие статьи:

Комментарии Вконтакте: