Categories: Мадженто 2

Основна інформація про нову структуру в Magento 2

У сьогоднішній статті ми подивимося на зміни системи шаблонів в Мадженто 2. Дані зміни не надто радикальні, в порівнянні з Magento 1.x версіями, але можуть дезорієнтувати новачків.

Одним з найбільших відмінностей між старими і новими версіями Magento є спосіб структурування всього проекту. В Magento 1.x шаблони були визначені в app/design/frontend/<ПАКЕТ>/<ТЕМА>, а всі ресурси теми були визначені в skin/frontend/<ПАКЕТ>/<ТЕМА>, в Magento 2 все це об’єднано в одній базовій папці. Тепер всі шаблони і ресурси зберігаються в: app/design/frontend/<ПАКЕТ>/<ТЕМА>.

Для прикладу ви можете відкрити «чисту» тему в Мадженто 2 (blank). Вона розташована в app/design/frontend/Magento/blank/ (або в app/vendor/magento/theme-frontend-blank/, якщо ви встановлювали двигун через Composer). Ви побачите велику кількість папок, кожна з яких представляє собою модуль в Magento 2, шаблони або ресурси яких перевизначаються в цій темі.

Якщо ви хочете перевизначити/змінити шаблони основних модулів або їх ресурси, вам потрібно буде створити еквівалентну папку модуля у своїй темі, яка відповідає шляху файлу, який ви хочете перевизначити/розширити.

Наприклад, якщо ви хочете перевизначити щось в модулі Catalog, вам необхідно створити папку в своїй темі Magento_Catalog. Дане ім’я посилається на <пакет_модуль>, в даному випадку перша частина назви – Magento – посилається на app/code/Magento, а друга частина після підкреслення посилається на назву модуля. У нашому випадку це Catalog.

Тобто, щоб перевизначити вміст модуля в app/code/<ПАКЕТ>/<МОДУЛЬ> вам потрібно буде створити папку з назвою <ПАКЕТ>_<МОДУЛЬ> в своїй темі, наприклад, app/design/frontend/<ПАКЕТ>/<ТЕМА>/Magento_Catalog.

Також зверніть увагу, що ви можете перевизначати вміст лише частини view/frontend модуля в своїй темі. Якщо вам потрібно перевизначити Контролери та Блоки, це робиться в іншому місці (це ми розглянемо в окремому уроці).

 

 

Визначення власних шаблонів в темі

Створення блоків і шаблонів трохи схоже на те, як це робилося в Magento 1.x. В Magento 2 для створення нового шаблону, також потрібно визначати Блок, наприклад:

<block class="Magento\Framework\View\Element\Template" name="custom.block.name" template="Magento_Theme::vash-shablon.phtml" before="-" />

 

Зверніть увагу на тег class, який пов’язаний з визначенням Блоку. В даному прикладі використовується той тип класу, який потрібен при створенні стандартного Блоку, який не вимагає додаткової функціональності і призначений тільки для контенту з грубо прописаним кодом. Якщо вам потрібно зв’язати Блок з іншим класом, ви вказуєте його в цьому тезі.

 

Зверніть увагу на новий синтаксис атрибуту template:

Magento_Theme::vash-shablon.phtml

 

Це скорочений синтаксис для посилання на папку шаблонів в певному модулі (в даному випадку Magento_Theme). Іншими словами, це посилання веде на файл vash-shablon.phtml в наступному місці: app/design/frontend/ПАКЕТ/ТЕМА/Magento_Theme/templates/.

Якщо редагований XML-файл макета вже знаходиться в тому ж модулі, що і шаблон, який ви викликаєте, ви можете пропустити визначення модуля і просто викликати шаблон таким чином:

template="vash-shablon.phtml"

 

Це буде посилання на папку templates в модулі, де розташований файл макета XML. Якщо ви хочете розмістити Блок в іншому Блоці або Контейнері, ви можете вказати це у визначенні батьківського Блоку або Контейнеру, або ж ви можете використовувати методи referenceBlock або referenceContainer.

 

<referenceContainer name="main.content">
  <block class="Magento\Framework\View\Element\Template" name="custom.block.name" template="Magento_Theme::vash-shablon.phtml" before="-" />
</referenceContainer>

 

 

 

Сподіваємося, що інформація з даного уроку була для вас корисною!

 

Recent Posts

Тактичний тепловізор: призначення, особливості та переваги

Цей прилад став незамінним елементом арсеналу представників безлічі професій, але особливо актуальним серед військових. Тепловізор…

1 тиждень ago

Як книги для саморозвитку допомагають “закрити зайві думки” і почати жити тут і зараз

Постійний потік новин, робочих завдань і особистих турбот часто призводить до того, що в голові…

1 тиждень ago

Як онлайн-моніторинг цін конкурентів допомагає бізнесу у 2025 році

В 2025 році конкуренція в e-commerce стала жорсткою як ніколи. Клієнти вибирають не тільки за…

2 тижні ago

Як створити заливку тексту градієнтом з допомогою CSS

Веб-дизайнери та розробники завжди шукають щось нове та креативне, щоб зробити свій сайт унікальним та…

2 тижні ago

Що таке помилка 401, та як її виправити (у WordPress)?

Уявіть ситуацію, коли ви намагаєтеся оновити свій веб-сайт, але з якоїсь причини у вас немає…

2 тижні ago

Яка різниця між хостингом домену та веб-хостингом?

Кожен сайт потребує і хорошого веб-хостингу, і хорошого хостингу домену. Але нерідко ці два поняття…

2 тижні ago