Навігація

Останні статті

Редагування головної сторінки OpenCart
29.09.2025 2665 3 3 хв.

Редагування головної сторінки OpenCart налаштування тексту заголовків H1 та Title, виведен..

Як видалити Powered by OpenCart
03.09.2025 4134 3 3 хв.

Видаліть Powered by OpenCart та налаштуйте футер: редагування шаблону, використання редакт..

Як видалити модулі в OpenCart
28.08.2025 2114 3 2 хв.

Покрокова інструкція з видалення модулів в OpenCart 3 через адмінку, вручну та з бази дани..

Який хостинг вибрати для OpenCart
25.08.2025 1432 3 3 хв.

Дізнайтеся, який хостинг вибрати для OpenCart інтернет-магазину. Вимоги, критерії вибору, ..

Адаптация модулей OpenCart 2.1.x.x -> 2.2.0.0

3352 0 2 хв.
Адаптация модулей OpenCart 2.1.x.x -> 2.2.0.0

З виходом нової версії OpenCart 2.2.0.0 виникла потреба адаптувати модулі під неї. Майже всі модулі зі старих версій OpenCart 2.0 та 2.1 не сумісні з новою версією 2.2.

Ми написали короткий мануал, як адаптувати модулі зі старих версій. Якщо ви адаптуєте модулі c OpenCart 2.0, то вам слід врахувати і зміни для OpenCart 2.1

1. Створення посилань

Потрібно в контролері зробити глобальну заміну SSL на true

2. Підключення файлів уявлень

Замінити

 if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/file.tpl')) {
return $this->load->view($this->config->get('config_template') . '/template/module/file.tpl', $data);
} else {
return $this->load->view('default/template/module/file.tpl', $data);
}

на

 return $this->load->view('module/file', $data);

Також замінити

 if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/file.tpl')) {
$this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/module/file.tpl', $data));
} else {
$this->response->setOutput($this->load->view('default/template/module/file.tpl', $data));}

на

 $this->response->setOutput($this->load->view('module/file', $data));

3. Підключення мовних файлів

Мовні файли тепер зберігаються в папках не за назвою мови, а за назвою локалі. Потрібно переімнувати папки language/english та language/russian на language/en-gb та language/ru-ru відповідно.
А також у контролерах замінити

 $this->language->load

на

 $this->load->language

4. Формування ціни

У функції $this->currency->format тепер два аргументи, потрібно додати як другий аргумент $this->session->data['currency']
Ось так

 $this->currency->format($this->tax->calculate(...), $this->session->data['currency'])

5. Розміри картинок

Тепер у кожній темі можуть бути свої розміри картинок, отже, отримувати розміри тепер ми будемо трохи інакше.
Було

 $this->config->get('config_image_category_width')

Стало

 $this->config->get('theme_default_image_category_width')

Універсальний код отримання розміру зображення з налаштувань поточного шаблону для OpenCart 2.2:

 $this->config->get($this->config->get('config_theme') . '_image_category_width');
$this->config->get($this->config->get('config_theme') . '_image_category_height');

6. Адреса картинок прапорів в адмінці

Замість

 src="view/image/flags/<?php echo $language['image']; ?>"

потрібно

 src="language/<?php echo $language['code']; ?>/<?php echo $language['code']; ?>.png"

Можна написати універсальний код, який в залежності від версії OpenCart буде підставляти потрібну адресу зображення прапора:

 src="<?php echo version_compare(VERSION, '2.2.0', '>=') ? "language/{$language['code']}/{$language['code']}.png" : " view/image/flags/{$language['image']}"; ?>"

7. Отримання суми замовлення

Замість

 $this->{'model_total_' . $result['code']}->getTotal($totals, $total, $taxes);

буде

 $this->{'model_total_' . $result['code']}->getTotal(array('totals' => &$totals, 'total' => &$total, 'taxes' => &$taxes));

8. Отримання параметрів валюти

Замість

 $this->currency->getId()
$this->currency->getCode()
$this->currency->getValue( $this->currency->getCode() )

тепер

 $this->currency->getId( $this->session->data['currency'] )
$this->session->data['currency']
$this->currency->getValue( $this->session->data['currency'] )

9. Отримання коду мови

Замість (хоча цей варіант також працює, але повертає код типу ru)

 $this->language->get('code')

потрібно (повертає код типу ru-ru)

 $this->session->data['language']

Можливо, існує ще багато змін, якщо ви їх знаєте - пишіть у коментарі, по ходу будемо доповнювати цю статтю.

ChatGPT консультант

Коментарі

Залиште свій коментар або запитання

Написати коментар

Популярні модулі