Під час розробки інтернет-магазину на базі Magento 2, виникає задача розширення стандартного функціоналу Magento 2 або модулів Magento 2. Редагувати файли ядра Magento чи модулів недопустимо, тому що під час оновлення ці зміни будуть перезаписані. Отож, як внести зміни у storefront (frontend) файл темплейту, css, js?
УВАГА! Подані нижче інструкції не можна застовувати для переписування layout-файлів.
Переписування view-файлів модуля у папці app/code
Нехай потрібно змінити файл:
app/code/Magefan/Blog/view/frontend/templates/post/view.phtml
Створіть його копію у папці теми зі шляхом:
app/design/frontend/ThemeVendor/themename/Magefan_Blog/templates/post/view.phtml
Внесіть необхідні зміни у щойно створений файл теми.
Якщо власна тема відсутня на вашій Magento інсталяції, створіть її.
Переписування view-файлів модуля у папці vendor
Нехай потрібно змінити файл:
vendor/magefan/module-blog/view/frontend/web/css/blog-custom.css
Створіть його копію у папці теми зі шляхом:
app/design/frontend/ThemeVendor/themename/Magefan_Blog/web/css/blog-custom.css
Звергіть увагу, що назву папки модуля у темі (наприклад Magefan_Blog) не завжди можна сформувати із назви папки модуля у vendor (наприклад magefan/module-blog). Краще візьміть це значення із файлу модуля registration.php.
<?php
/* код файлу registration.php модуля блогу від Magefan для Magento 2 */
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magefan_Blog',
__DIR__
);
Переписування файлів батьківської теми
Нехай потрібно змінити файл:
app/design/frontend/Smartwave/porto/Magento_Catalog/templates/product/list.phtml
Створіть його копію у папці теми зі шляхом:
app/design/frontend/ThemeVendor/themename/Magento_Catalog/templates/product/list.phtml
Зверніть увагу, що у цьому випадку змінюється лише шлях до теми.
Важиливо: якщо магазин знаходиться у production режимі (чого неповинно бути під час розробки), то після будь-яких змін у view-файлах необхідно виконати розгортання (deploy) статичного контенту.