З виходом нової версії 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']
Можливо, існує ще багато змін, якщо ви їх знаєте - пишіть у коментарі, по ходу будемо доповнювати цю статтю.














































Коментарі