Як написати модуль opencart (частина 1)
У цій статті буде описаний спосіб додавання свого модуля в OpenCart 2.0. Мається на увазі, що Новомосковсктель вже хоча б редагував стандартний шаблон під вимоги замовника і орієнтується в php. Модуль буде відображати у вигляді слайдера відгуки про магазин в цілому, які додав покупець. Хоча кого ми обманюємо - все відгуки будуть заповнюватися з адмінки підготовленою людиною (ну може на основі відгуків які скинули поштою адміну магазину) =)
Для початку потрібно розібратися як працює система модулів. А розбиратися ми будемо на основі модуля «Банер» який йде в стандартній поставці.
Загалом структура зрозуміла людині, яка зробила хоч один шаблон для OpenCart, а якщо незрозуміло, боюся зарано робити модуль, перед цим потрібно ознайомитися з моделлю MVC і застосуванням її до OpenCart.
Далі будемо розбиратися з кожним файлом, його призначенням і функціями в перебігу декількох статей.
Частина перша - Контролер адмінки.
Визначаємося з завданням модуля:
І напишіть план дій модуля:
- Зареєструвати самого себе
- Підключити всі потрібні файли
- Отримати дані, які потрібно вивести
- обробити їх
- Передати змінні на отрисовку
Здавалося б просто, але розберемо все по порядку:
Початок контролера нічим не відрізняється від всіх інших контролерів (все назва не від балди - так положено в OpenCart):
Далі нам потрібно підключити мовної файл, згідно з нашою структурою це робиться таким чином:
Задамо title для нашого модуля:
Далі нас цікавить поява нашого модуля в списку модулів - з адмінки. Це робиться такою функцією:
Щоб зрозуміти чому така умова - треба знати, що кнопка «зберегти» в модулі працює методом GET, а кнопка «Додати модуль» виходить методом POST, таким чином фукнція зголоситься всього лише один раз при додаванні модуля і більше не потрібна. Функція validate потрібна для перевірки прав користувача додавати модулі (не сказати, щоб сильно потрібна, але так положено)
Отже, модуль зареєстрований.
Далі починаємо заповнювати масив даних, який передається на отрисовку, почнемо з констант текстових:
$ Data [ 'heading_title'] = $ this-> language-> get ( 'heading_title'); $ Data [ 'text_edit'] = $ this-> language-> get ( 'text_edit'); $ Data [ 'text_enabled'] = $ this-> language-> get ( 'text_enabled'); $ Data [ 'text_disabled'] = $ this-> language-> get ( 'text_disabled'); $ Data [ 'table_image'] = $ this-> language-> get ( 'table_image'); $ Data [ 'table_name'] = $ this-> language-> get ( 'table_name'); $ Data [ 'table_text'] = $ this-> language-> get ( 'table_text'); $ Data [ 'button_save'] = $ this-> language-> get ( 'button_save'); $ Data [ 'button_cancel'] = $ this-> language-> get ( 'button_cancel'); $ Data [ 'table_header'] = $ this-> language-> get ( 'table_header'); $ Data [ 'table_edit'] = $ this-> language-> get ( 'table_edit'); $ Data [ 'table_delete'] = $ this-> language-> get ( 'table_delete'); $ Data [ 'table_id'] = $ this-> language-> get ( 'table_id'); $ Data [ 'title_add'] = $ this-> language-> get ( 'title_add');
І повідомлення про помилки:
Нам знадобляться хлібні крихти. Вони є майже в кожному контролері в OpenCart, можна сміливо їх копіювати, якщо не потрібні якісь особливі.
Знадобляться кнопки зберегти і скасувати:
Так само кожен раз при заході в модуль хотілося б бачити його реальний статус - включений чи ні. перевіримо: