Magento 2: Как переопределить домашнюю страницу темы Luma

9

Я использую Magento 2 CE версии 2.1.0 на WAMP Windows 10

Я уже сослалась

Magento 2: Как переопределить HTML-файл шаблона мини-корзины по умолчанию?

Хотите переопределить Magento 2 Default Luma Theme

У меня ниже структура папок

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_Theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
                registration.php
                theme.xml

App \ дизайн \ внешний интерфейс \ Custom \ Theme \ Magento_Theme \ registration.php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/Theme',
    __DIR__
);

App \ дизайн \ внешний интерфейс \ Custom \ Theme \ Magento_Theme \ theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>My Theme</title>
    <parent>Magento/luma</parent>
</theme>

Я также запускаю php bin/magento setup:static-content:deployи очищаю кеш. Это не отображает мою недавно созданную тему в Admin -> Content -> Design -> Configuration. Изменить выпадающий список.

Что мне еще не хватает?

Анкит Шах
источник
Это также будет полезно devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/…
Анкит Шах,

Ответы:

6

При создании любой новой темы или модуля вам нужно определить файл registration.php в корневом каталоге вашего модуля или папки темы.

Всегда используйте имя темы в нижнем регистре, потому что Magento использовал этот стандарт для объявления имени темы.

У вас нет проблем с тем, чтобы сохранить название темы в верблюжьей коробке, но использование стандартного способа очень ценится.

Вы должны определить файл registration.php в папке Magento_Theme, он находится не в том месте.

Правильная схема структуры темы будет ниже,

magento2
 |_ app
   |_ design
      |_ frontend
        |_ Custom
            |_theme
              |_Magento_Theme
                |_templates
                  |_root.phtml     - Copy of Luma
              |_registration.php
              |_theme.xml

Ваш путь для регистрации. app\design\frontend\Custom\theme\registration.php

файл registration.php :

<?php
   \Magento\Framework\Component\ComponentRegistrar::register(
     \Magento\Framework\Component\ComponentRegistrar::THEME,
      'frontend/Custom/theme',
      __DIR__
);

путь к файлу theme.xml будет

app\design\frontend\Custom\theme\theme.xml

файл theme.xml :

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
   <title>Custom Theme</title>
   <parent>Magento/luma</parent>
   <media>
      <preview_image>media/preview.jpg</preview_image>
   </media>
</theme>

После того, как все настройки завершены, не забудьте запустить команду deploy для темы,

php bin/magento setup:static-content:deploy

Проверьте внутри вашей админ-панели, Content -> Design -> Configurationчтобы установить свою собственную тему.

Удалить кеш и проверить в веб-интерфейсе.

Ракеш Джесадия
источник
Bijal Usean & SH Patel. Принятие ответа @Rakesh, потому что ранее я обсуждаю с ним этот вопрос.
Анкит Шах
Выдает ошибку при сохранении из Admin Cannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory. Так не удалось сохранить и включить новую тему
Анкит Шах,
пожалуйста, запустите команду обновления, затем запустите команду deploy, удалите папку var из root и проверьте
Rakesh Jesadiya
Нет. Все еще в выпуске
Анкит Шах
Следите за новостями
Анкит Шах,
1

Вы размещаете theme.xml и registration.php в неправильном месте, фактическое местоположение

app/design/frontend/<vendor>/<theme>/registration.php

<?php
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/<vendor>/<theme>',
    __DIR__
);

app/design/frontend/<vendor>/<theme>/theme.xml

<!--
/**
 * Copyright © 2016 Magento. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Vendor Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

примечание: поместите preview.jpg вapp/design/frontend/<vendor>/<theme>/media/preview.jpg

этих двух файлов достаточно, чтобы получить список тем в Admin, а затем применить вашу тему.

Если вы хотите переопределить шаблоны яркости, например app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml, вы можете внести изменения в этот шаблон вapp/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml

Билал Усеан
источник
Это дает ошибку при сохранении от администратора, Cannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.поэтому невозможно сохранить и включить новую тему
Ankit Shah
похоже, проблемы с правами доступа к файлам, проверьте, правильно ли вы установили права доступа в соответствии со стандартом magento.
Билал Усеан
Как уже упоминалось в вопросеI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Анкит Шах
Следите за новостями
Анкит Шах,
проверьте вашего пользователя доступа к корневому каталогу magento и его группу пользователей, это должен быть пользователь веб-сервера и его группу, а также проверьте разрешение на чтение / запись для этого каталога. По этой ссылке вы можете получить больше идей devdocs.magento.com/guides/v2.0/install-gde/prereq/… magento.stackexchange.com/q/91870/36463
Билал Усеан,
1

Неверный путь, который вы использовали.

Следуйте инструкциям ниже для создания новой пользовательской темы.

Создайте файл theme.xml/app/design/frontend/Custom/Theme/theme.xml с приведенным ниже кодом.

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Custom Theme</title>
    <parent>Magento/luma</parent>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

Создайте файл registration.php app/design/frontend/Custom/Theme/registration.phpс приведенным ниже кодом.

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'frontend/Custom/theme',
    __DIR__
);

скопируйте preview.jpg из

vendor/magento/theme-frontend-luma/media/preview.jpg 

добавить к

app/design/frontend/Custom/Theme/media/preview.jpg

Теперь вы можете увидеть свою пользовательскую тему в админке, выбрать пользовательскую тему в админке и сохранить ее.

Суреш Чикани
источник
Это дает ошибку при сохранении от администратора, Cannot read contents from file "D:/wamp/www/magento2/" Warning!file_get_contents(D:/wamp/www/magento2/): failed to open stream: No such file or directory.поэтому невозможно сохранить и включить новую тему
Ankit Shah
Luma тема сохранить работу правильно?
Суреш Чикани
Следите за новостями
Анкит Шах,