Magento 2: Comment remplacer la page d'accueil du thème Luma

9

J'utilise Magento 2 CE version 2.1.0 sur WAMP Windows 10

J'ai déjà référé

Magento 2: Comment remplacer le fichier html du modèle par défaut du mini-panier?

J'aimerais remplacer le thème Luma par défaut de Magento 2

J'ai ci-dessous la structure des dossiers

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

app \ design \ frontend \ Custom \ Theme \ Magento_Theme \ registration.php

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

app \ design \ frontend \ 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>

Je lance php bin/magento setup:static-content:deployet vide également le cache. Il n'affiche pas mon thème nouvellement créé dans Admin -> Content -> Design -> Configuration. Modifier la liste déroulante.

Qu'est-ce qui me manque encore?

Ankit Shah
la source

Réponses:

6

Lors de la création d'un nouveau thème ou module, vous devez définir le fichier registration.php à la racine de votre dossier de module ou de thème.

Utilisez toujours le nom du thème en minuscules, car Magento a utilisé cette norme pour la déclaration du nom du thème.

Vous n'avez aucun problème pour conserver le nom du thème dans camelcase mais l'utilisation de manière standard est très appréciée.

Vous devez définir le fichier registration.php dans le dossier Magento_Theme, son au mauvais endroit.

Le diagramme correct de la structure du thème sera ci-dessous,

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

Votre chemin pour registration.php est app\design\frontend\Custom\theme\registration.php

fichier registration.php :

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

votre chemin d'accès au fichier theme.xml sera,

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

Fichier 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>

Une fois la configuration terminée, n'oubliez pas d'exécuter la commande deploy pour le thème,

php bin/magento setup:static-content:deploy

Vérifiez à l'intérieur de votre panneau d'administration, Content -> Design -> Configurationpour définir votre thème personnalisé.

Supprimer le cache et archiver le frontend.

Rakesh Jesadiya
la source
Bijal Usean et SH Patel. Accepter la réponse de @Rakesh car auparavant, je suis en discussion avec lui sur cette question.
Ankit Shah
Cela donne une erreur lors de l'enregistrement depuis 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. Impossible d'enregistrer et d'activer un nouveau thème
Ankit Shah
veuillez exécuter la commande de mise à niveau, puis exécuter la commande de déploiement, supprimer le dossier var de la racine et vérifier
Rakesh Jesadiya
Nan. Toujours question
Ankit Shah
1

vous placez theme.xml et registration.php au mauvais endroit, l'emplacement réel est

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>

remarque: placez preview.jpg dansapp/design/frontend/<vendor>/<theme>/media/preview.jpg

ces deux fichiers suffisent pour obtenir votre liste de thèmes dans Admin, puis appliquez votre thème.

Si vous souhaitez remplacer les modèles Luma par exemple app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml, vous pouvez effectuer les modifications de ce modèle dansapp/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml

Bilal Usean
la source
Cela donne une erreur lors de l'enregistrement à partir d'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.Impossible d'enregistrer et d'activer un nouveau thème
Ankit Shah
cela ressemble à des problèmes d'autorisation de fichier, vérifiez que vous définissez la bonne autorisation selon la norme magento.
Bilal Usean
Comme mentionné en questionI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Ankit Shah
veuillez vérifier votre utilisateur d'accès au répertoire racine magento et leur groupe d'utilisateurs, il doit s'agir de l'utilisateur du serveur Web et de leur groupe, ainsi que vérifier l'autorisation de lecture / écriture de ce répertoire. référez-vous à ces deux liens, vous pouvez avoir plus d'idées devdocs.magento.com/guides/v2.0/install-gde/prereq/… magento.stackexchange.com/q/91870/36463
Bilal Usean
1

Chemin d'accès incorrect que vous avez utilisé.

Suivez les instructions ci-dessous pour créer un nouveau thème personnalisé.

Créez le fichier theme.xml/app/design/frontend/Custom/Theme/theme.xml avec le code ci-dessous.

<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>

Créez le fichier registration.php app/design/frontend/Custom/Theme/registration.phpavec le code ci-dessous.

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

copier preview.jpg depuis

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

ajouter à

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

Vous pouvez maintenant voir votre thème personnalisé dans admin, sélectionnez un thème personnalisé dans admin et enregistrez-le.

Suresh Chikani
la source
Cela donne une erreur lors de l'enregistrement depuis l'administrateur. 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.Impossible d'enregistrer et d'activer un nouveau thème
Ankit Shah
Le thème Luma enregistre-t-il le travail correctement?
Suresh Chikani