Тематика Magento 2
Я пытаюсь создать пользовательскую тему для magneto2 и заметил, что файлы тем для luma и blank расположены в папке поставщика, а приложение/дизайн/Magento пусто. У меня есть пара вопросов по этому поводу. Я просмотрел документацию на веб-сайте magento и создал папку в разделе приложение/дизайн, которая соответствовала их структуре. Не похоже, что моя пользовательская тема наследует родительскую. Нужно ли мне переместить нужную тему из папки поставщика в приложение/дизайн/magento/пустой заказ для его наследования? У кого-нибудь еще есть эта проблема. Я заметил, что здесь есть много вопросов по этому поводу, но ни на один из них нет ответов, или те, у которых есть ответы, предлагают не получать zip и использовать файл из git. Кто-нибудь может пролить некоторый свет на это?
3 answers
Выполните следующие действия для создания темы теперь вам нужно создавать файлы один за другим.
Theme.xml ( app/design/frontend/mycompany/basic/theme.xml )
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Basic</title> <!-- your theme's name -->
<parent>Magento/blank</parent> <!-- the parent theme -->
<media>
<preview_image>media/preview.jpg</preview_image> <!-- theme's preview image -->
</media>
</theme>
Registration.php ( app/design/frontend/mycompany/basic/registration.php )
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::THEME,
'frontend/mycompany/basic',
__DIR__
);
Default.xml ( app/design/frontend/mycompany/basic/Magento_Theme/layout/default.xml )
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="logo">
<arguments>
<argument name="logo_file" xsi:type="string">images/my_logo.png</argument>
<argument name="logo_img_width" xsi:type="number">200</argument>
<argument name="logo_img_height" xsi:type="number">200</argument>
</arguments>
</referenceBlock>
</body>
</page>
На этом этапе наша тема готова. Очистите свой кэш, и теперь мы выберем наш новая тема от администратора.
Теперь войдите в систему администратора и перейдите по следующему пути:
Content -> Design -> Themes
Вы должны увидеть свою тему в списке.
Теперь перейдите к:
Stores -> Configuration -> Design
Выберите Основной веб-сайт перед видом магазина в левом верхнем углу. Теперь нажмите
Desgin -> Design Theme
Снимите флажок Использовать по умолчанию и выберите свою тему. Нажмите Сохранить конфигурацию, очистите кэш, и ваша новая тема будет готова. Проверьте свою домашнюю страницу.
Файл, необходимый для установки родительской темы, - app/design/frontend/**VENDOR**/**THEME**/theme.xml
. Это все, что вам нужно сделать, если это не сработает, попробуйте очистить кэш и очистить var/pre_processed и pub/static (и запустить php bin/magento setup:static-content:deploy
, если вы находитесь в рабочем режиме). Если это не сработает, проверьте свою тему на наличие ошибок.
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>Basic</title> <!-- your theme's name -->
<parent>Magento/blank</parent> <!-- the parent theme -->
<media>
<preview_image>media/preview.jpg</preview_image> <!-- theme's preview image -->
</media>
</theme>
Эта строка - строка, в которой вы определяете родителя:
<parent>Magento/blank</parent>
Например, если бы вы хотели унаследовать от Luma (Magento не советует этого делать, так как это их демонстрационная тема), вы бы использование:
<parent>Magento/luma</parent>
Если вы уже сделали это, то я подозреваю, что это будет связано с кэшами, или у вас все еще установлен рабочий режим Magento, поэтому вам нужно выполнить команду развертывания статического содержимого, которую я отметил в верхней части моего комментария.
Я бы не советовал перемещать какие-либо каталоги из папки поставщика.
Я смог заставить это работать, используя приведенные выше инструкции. Одна вещь, которую я хотел бы упомянуть, - ваша тема не будет наследоваться и компилироваться, если у вас нет файла в веб-папке.