Доброго часу доби, шановні відвідувачі нашого сайту, сьогодні поговоримо про те як встановити модуль до якого ви звикли і який успішно працював на opencart 1.5.x. на другу версію Opencart 2.x.
З виходом другої гілки opencart багато вебмастерів зіткнулися з такою проблемою як адаптація модулів під неї від попередніх версій 1.5.x.
Всі ми вже знаємо що друга версія opencart кардинально змінена і не схожа на попередню, хоча деякі модулі від першої гілки все ж прекрасно працюють на двійці хоча їх і небагато і більшість їх потрібно адаптувати, і змінювати.
Сьогодні я хотів би описати тут частину основних змін які були порушені, і які потрібно застосувати при адаптації певного модуля.
Насправді ж адаптація модуля не така вже й складна задача якщо розуміти що робити, і з простими не великими модулями ви зможете впоратись самостійно.
Також хочемо звернути вашу увагу на те, що друга гілка більше не використовує VQMOD, а замість нього використовується OCMOD, принцип його такий же і має схожий синтаксис, хоча при бажанні ви можете все ж підключити і той же самий VQMOD, тим більше що більшість програмістів не поспішають переробляти свої модулі під OCMOD і далі пишуть їх на VQMOD.
І так для адаптації модулів Opencart 1.5.x під Opencart 2.x потрібно враховувати наступні відмінності:
1. Тепер замість:
1 |
$this->data |
Нам потрібно писати просто:
1 |
$data |
2. А замість:
1 |
$this->template = 'module/module.tpl'; |
Тепер буде:
1 |
$this->response->setOutput($this->load->view('module/module', $data)); |
3. Також замість:
1 |
$this->render() |
Тепер пишемо:
1 |
$this->load->view('catalog/category_list.tpl', $data); |
4. Замість цього:
1 2 3 4 |
$this->children = array( 'common/header', 'common/footer' ); |
Тепер стало:
1 2 3 |
$data['header'] = $this->load->controller('common/header'); $data['column_left'] = $this->load->controller('common/column_left'); $data['footer'] = $this->load->controller('common/footer'); |
5. Ну і замість редиректу:
1 |
$this->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); |
Тепер використовується:
1 |
$this->response->redirect($this->url->link('extension/module', 'token=' . $this->session->data['token'], 'SSL')); |
Це звичайно не всі відмінності і зміни а всього лише мала їх частина, але знаючи ці відмінності ви вже будете знати в який бік рухатися далі, так само забув вказати що друга версія використовує bootstrap і всі модулі потрібно так само адаптувати під нього.
Загалом пробуйте, тестуйте і у вас все вийде.
Немає коментарів
Ви можете залишити коментар першим.