Magento 2: Jak przesłonić stronę główną motywu Luma

9

Używam Magento 2 CE wersja 2.1.0 na WAMP Windows 10

Już poleciłem

Magento 2: Jak zastąpić domyślny plik HTML szablonu mini-koszyka?

Chciałby zastąpić domyślny motyw Luma Magento 2

Mam poniżej struktury folderów

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 \ register.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>

Uruchomiłem php bin/magento setup:static-content:deployi wyczyściłem pamięć podręczną. To nie wyświetla mojego nowo utworzonego motywu Admin -> Content -> Design -> Configuration. Edytuj listę rozwijaną.

Czego wciąż mi brakuje?

Ankit Shah
źródło
Będzie to również pomocne devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/…
Ankit Shah

Odpowiedzi:

6

Podczas tworzenia nowego motywu lub modułu musisz zdefiniować plik register.php w katalogu głównym modułu lub folderu motywu.

Zawsze używaj nazwy motywu małymi literami, ponieważ Magento użył tego standardu do deklaracji nazwy motywu.

Nie ma problemu z zachowaniem nazwy motywu w futerale na wielbłądach, ale użycie standardowego sposobu jest bardzo cenione.

Musisz zdefiniować plik register.php w folderze Magento_Theme, w niewłaściwym miejscu.

Prawidłowy schemat struktury motywu będzie poniżej,

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

Twoja ścieżka do rejestracji.php to app\design\frontend\Custom\theme\registration.php

plik register.php :

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

ścieżka do pliku theme.xml będzie

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

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

Po zakończeniu całej instalacji nie zapomnij uruchomić polecenia wdrażania dla kompozycji,

php bin/magento setup:static-content:deploy

Sprawdź w panelu administracyjnym, Content -> Design -> Configurationczy chcesz ustawić własny motyw.

Usuń pamięć podręczną i sprawdź w interfejsie użytkownika.

Rakesh Jesadiya
źródło
Bijal Usean & SH Patel. Akceptuję odpowiedź @Rakesh, ponieważ wcześniej rozmawiam z nim na ten temat.
Ankit Shah,
Daje błąd podczas zapisywania od administratora 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. Więc nie można zapisać i włączyć nowego motywu
Ankit Shah,
uruchom polecenie aktualizacji, a następnie uruchom polecenie wdrażania, usuń folder var z katalogu głównego i sprawdź
Rakesh Jesadiya
Nie. Nadal problem
Ankit Shah,
1

umieścić theme.xml i registration.php w niewłaściwym miejscu, rzeczywista lokalizacja jest

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>

Uwaga: umieść podgląd.jpg wapp/design/frontend/<vendor>/<theme>/media/preview.jpg

te dwa pliki wystarczą, aby uzyskać listę motywów w Administratorze, a następnie zastosować motyw.

Jeśli chcesz na przykład zastąpić szablony Luma app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml, możesz wprowadzić zmiany w tym szablonie wapp/design/frontend/<vendor>/<theme>/Magento_Catalog/templates/product/view/addtocart.phtml

Bilal Usean
źródło
Daje błąd podczas zapisywania od administratora, 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.więc nie można zapisać i włączyć nowego motywu
Ankit Shah
wygląda na to, że masz problemy z uprawnieniami do plików, czy sprawdzisz, czy ustawiłeś odpowiednie uprawnienia zgodnie ze standardem Magento.
Bilal Usean
Jak wspomniano w pytaniuI'm using Magento 2 CE Version 2.1.0 on WAMP Windows 10
Ankit Shah
sprawdź użytkownika dostępu do katalogu głównego magento i jego grupy użytkowników, powinien to być użytkownik serwera WWW i ich grupa, a także sprawdź uprawnienia do odczytu / zapisu tego katalogu. skorzystaj z tego linku, aby uzyskać więcej pomysłów devdocs.magento.com/guides/v2.0/install-gde/prereq/… magento.stackexchange.com/q/91870/36463
Bilal Usean
1

Użyto niepoprawnej ścieżki.

Postępuj zgodnie z poniższymi instrukcjami dotyczącymi tworzenia nowego niestandardowego motywu.

Utwórz plik theme.xml/app/design/frontend/Custom/Theme/theme.xml z poniższym kodem.

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

Utwórz plik register.php app/design/frontend/Custom/Theme/registration.phpz poniższym kodem.

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

skopiuj podgląd.jpg z

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

dodać do

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

Teraz możesz zobaczyć swój niestandardowy motyw w adminie, wybrać niestandardowy motyw od administratora i zapisać go.

Suresh Chikani
źródło
Daje błąd podczas zapisywania od administratora, 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.więc nie można zapisać i włączyć nowego motywu
Ankit Shah
Motyw Luma zapisać pracę poprawnie?
Suresh Chikani,