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

Обзор WordPress 7.0 «Armstrong»: Новая эра ИИ и масштабная перестройка Core-архитектуры

20 мая 2026 года официально состоялся релиз долгожданной мажорной версии WordPress 7.0 «Armstrong», названной в…

6 дней ago

History Hijacking: Почему Google наказывает за «сломанную» кнопку Назад и как защитить сайт с помощью CSP

Каждый владелец сайта и SEO-специалист ведет ежедневную упорную борьбу за удержание пользователя на страницах вебресурса.…

7 дней ago

Интернет-магазин без лишнего функционала: как не переплатить за разработку на старте

Многие предприниматели сталкиваются с одной и той же проблемой. После утверждения бюджета разработка затягивается, появляются…

1 неделя ago

Как выбрать детские бутсы для футбольной секции и не ошибиться с типом подошвы

Футбольная секция быстро показывает, насколько обувь подходит ребенку. Если пара скользит, давит или плохо цепляется…

1 неделя ago

Флагманский смартфон: почему стоит купить Samsung Galaxy S26 Ultra

Компания Samsung — один из лидеров на рынке электроники. Ее смартфоны выделяются надежностью, качественными дисплеями,…

1 неделя ago

Глагол dar в испанском языке: значение, спряжение и особенности использования

Испанский язык привлекает миллионы людей своей мелодичностью, эмоциональностью и относительной простотой изучения. Одним из важнейших…

2 недели ago