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>

 

 

 

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

 

Share
Published by
SebWeo

Recent Posts

Використання запитів WP_Query у WordPress — частина 5 (методи та властивості)

Продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у ВордПрес. Сьогоднішній урок…

2 дні ago

Використання запитів WP_Query у WordPress — частина 4 (хуки та фільтри)

Цим уроком ми продовжуємо серію уроків по роботі з запитами до бази даних WP_Query у…

3 дні ago

Проксі: основи, види та переваги використання

У сучасному цифровому світі питання безпеки, анонімності та швидкого доступу до інтернет-ресурсів стає дедалі актуальнішим.…

1 тиждень ago

Джекі Чан

Твоя жахлива робота — мрія кожного безробітного. Твоя неслухняна дитина — мрія кожного бездітного. Твій…

1 тиждень ago

Використання запитів WP_Query у WordPress — частина 3 (основні функції класу)

Цей урок є продовженням серії про роботу з запитами до бази даних WP_Query у ВордПрес.…

1 тиждень ago

Григорій Сковорода

Як ліки не завжди приємні, так і істина буває сувора Григорій Сковорода  

2 тижні ago