Вопрос или проблема
Я использую следующий XML в catalog_product_view.xml в своей теме:
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
</body>
</page>
Этот XML переопределяет макет 1column. Мой вопрос в том, как я могу переопределить макет Product — Full Width.
Что я хочу, так это показать Обзор, Дополнительную информацию и Отзывы в плоской структуре, а не во вкладках, и макет Product — Full Width именно тот, который подходит под мои нужды.
Когда я пытаюсь использовать макет Product — Full Width, я не могу его переопределить, потому что я должен использовать 1column для переопределения catalog_product_view.xml.
Я использую Magento 2.4.7. Спасибо.
Ответ или решение
Для того чтобы переопределить макет "Product — Full Width" в Magento 2.4, необходимо выполнить несколько шагов, которые позволят вам добиться желаемого результата — отображения информации о продукте в плоской структуре, без использования вкладок.
Шаг 1: Создание или редактирование файла catalog_product_view.xml
Вам необходимо убедиться, что вы работаете с правильным файлом конфигурации макета. Откройте или создайте файл catalog_product_view.xml
в папке вашего кастомного шаблона по следующему пути:
app/design/frontend/[Vendor]/[Theme]/Magento_Catalog/layout/catalog_product_view.xml
Замените [Vendor]
и [Theme]
на ваши значения.
Шаг 2: Определение макета "Product — Full Width"
Внутри catalog_product_view.xml
, вы можете использовать следующий XML-код, чтобы переопределить макет "Product — Full Width":
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd" layout="product_full_width">
<body>
<!-- Настройки для вывода информации о продукте в непрерывной структуре -->
<referenceBlock name="product.info">
<action method="unsetChild">
<argument name="product.info.review" />
</action>
<action method="unsetChild">
<argument name="product.info.additional" />
</action>
<action method="setTemplate">
<argument name="template" xsi:type="string">Vendor_Module::product/overview.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
Шаг 3: Создание кастомных шаблонов
Теперь вам нужно создать файл шаблона (overview.phtml
), который будет жить в папке вашего модуля или темы. Например:
app/design/frontend/[Vendor]/[Theme]/Vendor_Module/templates/product/overview.phtml
Шаг 4: Редактирование шаблона
Внутри overview.phtml
вы можете добавить необходимую информацию, например, обзор, дополнительную информацию и отзывы. Вы можете использовать стандартные блоки и данные, предоставляемые Magento, чтобы получить необходимые данные о продукте:
<?php
/** @var \Magento\Catalog\Model\Product $product */
$product = $block->getProduct();
?>
<h1><?php echo $product->getName(); ?></h1>
<div><?php echo $product->getDescription(); ?></div>
<!-- Здесь могут быть дополнительные блоки -->
Шаг 5: Очистка кеша
После всех изменений не забудьте выполнить очистку кеша Magento. Для этого выполните в командной строке:
php bin/magento cache:clean
php bin/magento cache:flush
Заключение
С помощью вышеописанных шагов вы сможете переопределить макет "Product — Full Width" и настроить отображение информации о продукте в плоской структуре. Если у вас возникнут дополнительные вопросы или сложности, стоит обратиться к документации Magento или в сообщества разработчиков. Успехов в разработке вашего интернет-магазина!