Как преобразовать модуль из opencart 3 в 1,5 и 2 и наоборот самостоятельно
Это касается и ocStore
Для примера будут приведены отличия данных версий и на основе это можно вручную сделать правки
0. Для начала название класса будет другим:
opencart (ocStore) 1,5 и 2: тут без Extension так как не в ней тут модули
ControllerModuleTags
opencart (ocStore) 3:
ControllerExtensionModuleTags
1. Контроллеры в Админке
opencart (ocStore) 1,5 и 2:
$this->load->language('module/myModul');
opencart (ocStore) 3: тут папка extension добавляется при загрузке языковых файлов
$this->load->language('extension/module/tags');
2. Различные методы получения токенов:
opencart (ocStore) 1,5 и 2:
$this->session->data['token'];
opencart (ocStore) 3: совсем небольшие изменения
$this->session->data['user_token'];
3. Различается редирект
opencart (ocStore) 1,5 и 2:
$this->redirect(
$this->url->link('extension/module', 'token=' .
$this->session->data['token'], 'SSL')
);
opencart (ocStore) 3: response добавляется и папки для магазина marketplace и extension
$this->response->redirect($this->url->link('marketplace/extension', 'user_token=' . $this->session->data['user_token'], true));
4. Поменялся способ сбора данных, вернее как и куда он собирается:
opencart (ocStore) 1,5 и 2: более ООП стиль
$this->data['heading_title'] = $this->language->get('heading_title');
opencart (ocStore) 3: массив data уже другим образом показан $data
$data['heading_title'] = $this->language->get('heading_title');
5. Образование хлебных крошек немного другое:
opencart (ocStore) 1,5 и 2:
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('module/myModul', 'token=' .
$this->session->data['token'], 'SSL'),
'separator' => ' :: '
);
opencart (ocStore) 3: вместо , 'SSL' - true , можно и без 'separator' => ' :: '
$data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('extension/module/tags', 'user_token=' . $this->session->data['user_token'], true)
);
6. Большое отличите в рендере страницы и сборке файлов шаблона header, footer и левого блока, если есть они:
opencart (ocStore) 1,5 и 2: тут сборка файлов идет через children
$this->template = 'module/myModul.tpl';
$this->children = array(
'common/header',
'common/footer'
);
$this->response->setOutput($this->render());
opencart (ocStore) 3: а тут сборка файлов вся складывается в тот же массив $data и появляется метод view , а render вообще исчез, но все стало уже более понятнее:
$data['header'] = $this->load->controller('common/header');
$data['column_left'] = $this->load->controller('common/column_left');
$data['footer'] = $this->load->controller('common/footer');
$this->response->setOutput($this->load->view('extension/module/tags', $data));