Я новичок в Magento 2 и еще не совсем понимаю его структуру. Я использую образцы данных для исследования кода. Я хочу переопределить файл .phtml с помощью специального модуля. Файл, который я хочу переопределить:
vendor/magento/module-customer/view/frontend/templates/account/dashboard/info.phtml
Пока что я создаю файл по этому пути:
src/app/code/NewModule/NewModuleTest/view/frontend/templates/customer/account/dashboard/info.phtml
Я копирую исходный файл в этот и вношу несколько простых изменений, например добавляю тег или меняю текст. После этого я запускаю команду:
bin/magento setup:upgrade
bin/magento cache:clean
Но ничего не происходит. Я не знаю, упускаю ли я что-нибудь. Я также очищаю кеш браузера. Пожалуйста, помогите мне. Любые идеи приветствуются. Спасибо вам всем!
P/s: не знаю, связано ли это, я устанавливаю Magento из этого репозитория на Github: Docker Magento
Вам нужно создать файл макета для обновления этого шаблона .phtml, например:
NewModule/NewModuleTest/view/frontend/layout/customer_account_dashboard_index.xml
и добавьте этот контент:
<?xml version = "1.0"?>
<page xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name = "customer_account_dashboard_info">
<action method = "setTemplate">
<argument name = "template" xsi:type = "string">NewModule_NewModuleTest::customer/account/dashboard/info.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
Файл customer_account_dashboard_index.xml
предназначен для конкретной страницы, которую вы хотите изменить. Он использует тег для изменения блока customer_account_dashboard_info, устанавливая шаблон в ваш собственный файл .phtml.
Вы обязательно хотите использовать собственный модуль? Если это только css/js/.phtml, вы можете просто создать собственную тему и расширить тему Magento по умолчанию.
Ага. Я хочу использовать собственный модуль. Потому что благодаря этому я могу просто предоставить это клиентам
Я понял, как это сделать
Определите файлы, которые вы хотите переопределить
vendor/magento/module-customer/view/frontend/templates/account/dashboard/info.phtml
vendor/magento/module-customer/view/frontend/layout/customer_account_index.xml
<block class = "Magento\Customer\Block\Account\Dashboard\Info" name = "customer_account_dashboard_info" as = "info" template = "Magento_Customer::account/dashboard/info.phtml" cacheable = "false">
<container name = "customer.account.dashboard.info.blocks" as = "additional_blocks"/>
</block>
Переопределить шаги
app/code/NewModule/NewModuleTest/view/frontend/layout/customer_account_index.xml
referenceBlock
и «именем» исходного блока.<?xml version = "1.0"?>
<page xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name = "customer_account_dashboard_info" template = "NewModule_NewModuleTest::customer/account/dashboard/info.phtml"/>
</body>
</page>
/app/code/NewModule/NewModuleTest/view/frontend/templates/customer/account/dashboard/info.phtml
Тогда дело сделано!
Это выглядит именно так, как я просил в ChatGPT. Но это не сработало Т.Т.