Як вивести модуль на певній сторінці Opencart

  1. Як працюють схеми (layout) в Opencart
  2. Як вивести або приховати модуль на певній сторінці Opencart

За весь час роботи з Opencart, я ні разу не задавався питанням, як вивести модуль тільки на одній категорії, продукті або сторінці. Завжди модулі розташовані на всіх сторінках одного типу, але тут виникло питання, як же все таки це реалізувати?

як вивести модуль тільки на одній категорії, продукті або сторінці

У продовження статті створення позиції виведення модулів в OpenCart , Сьогодні ми знайдемо відповідь, як же відображати модуль тільки на певних сторінках, і зробимо це без втручання в код, власноруч через адміністративну панель!

Як працюють схеми (layout) в Opencart

Для того щоб вирішити це завдання, необхідно чітко розуміти, як працює висновок (layout) в Opencart. Зараз я спробую пояснити вам як це функціонує як я це розумію.

У перевірений адміністратором сайту панелі Opencart присутній пункт меню «Система» - «Дизайн» - «Схеми». Схеми - це бланки / контейнери / шаблони, які можуть бути застосовані до будь-якій сторінці. Кожна схема представляє із себе просто список зазначених для неї модулів в певних місцях (верх, низ, ліво, право).

Кожна схема представляє із себе просто список зазначених для неї модулів в певних місцях (верх, низ, ліво, право)

Кожна схема (layout) може застосовуватися до елементів завдяки двом параметрам:

  1. за адресою (url), використовуючи змінну route;
  2. по прив'язці її до елементу (категорії, продукту, статті).

Таблиця layout_route зберігає інформацію про адреси / розділах, до яких прикріплена та чи інша схема:

А зв'язок з певним елементом вказується для кожного елемента окремо в його налаштуваннях, і таблиця зв'язків (в нашому випадку категорій зі схемами) виглядає наступним чином:

Як вивести або приховати модуль на певній сторінці Opencart

Тепер, коли ми розібралися зі зв'язками, давайте розберемося з адміністративною частиною і виведемо модуль тільки в одній категорії. Стандартні схеми створені на основі адреси (змінної route) і застосовуються до розділу (до всіх категорій / статей / продуктам), в разі якщо для елемента розділу не вказана унікальна схема.

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

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

Тепер, нам необхідно вказати зв'язок між цим Layout'ом (схемою) і нашим елементом, до якого ми хочемо його застосувати. Зробити це можна, якщо у вашого елемента присутній вкладка Дизайн (Design), в якій і вказується схема:

Тепер наша з вами категорія Components буде показувати тільки ті модулі, яким ми задали відображення в схемі Category Components:

Після того як ми додали потрібні модулі до нашої схеми, категорія Components стала унікальною:

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

Ось таким нехитрим способом ви можете вивести модуль тільки на одній категорії, тільки на одній сторінці / статті, тільки на сторінці одного продукту і т.д. Також ви можете застосувати одну і ту ж схему для декількох елементів розділу, і «особливими» будуть всі ці розділи. Також ви можете ознайомитися з оригіналом статті, про принцип роботи схем в Opencart.

Завжди модулі розташовані на всіх сторінках одного типу, але тут виникло питання, як же все таки це реалізувати?