Przewodnik tworzenia motywu w Magento 2
Opublikowany: 2015-11-20Cześć! Czy jesteś ciekawy Magento 2.0 z wieloma aktualizacjami i zmianami? Dzisiaj chcielibyśmy podzielić się z Wami wpisem na blogu o Przewodniku tworzenia motywu w Magento 2. Zawsze bądź na bieżąco, ćwicząc codziennie.
Najnowsza aktualizacja: Właśnie wydaliśmy wersję 2.0 uniwersalnego motywu Claue Magento 2 z kilkoma ulepszeniami wydajności i wyjątkowymi funkcjami. Sprawdź teraz ten motyw: Claue Magento Theme 2. 0
Demo na żywo
Claue – czysty, minimalistyczny motyw Magento 2&1 to doskonały szablon dla nowoczesnego i przejrzystego sklepu eCommerce z ponad 40 układami strony głównej i mnóstwem opcji dla sklepu, bloga, portfolio, układów lokalizatora sklepów i innych przydatnych stron. Claue w wersji 2.0 zawiera szereg ekskluzywnych funkcji, w tym:
- Opierając się na motywie Luma.
- Poznaj wszystkie standardy Magento Theme
- Znacząca poprawa wydajności
- Kompatybilny z większością rozszerzeń innych firm.
- W pełni kompatybilny z Magento 2.4.x
Ta druga zaawansowana wersja całkowicie różni się od poprzedniej. Tak więc, jeśli używasz Claue w wersji 1 i chcesz zaktualizować Claue w wersji 2, możesz tylko odbudować nową stronę internetową, a nie aktualizować ze starej wersji. Wróćmy teraz do głównego tematu.
System motywów zmienił się nieco w Magento 2, ale są pewne podobieństwa. W tym temacie omówiono sposób tworzenia plików składających się na motyw, dodawania logo do motywu oraz określania rozmiaru obrazów.
Utwórz katalog motywów
Aby utworzyć katalog dla swojego motywu:
- Przejdź do
<your Magento install dir>/app/design/frontend
. - Utwórz nowy katalog o nazwie zgodnej z nazwą dostawcy:
/app/design/frontend/<Vendor>
. - W katalogu dostawcy utwórz katalog o nazwie zgodnej z Twoim motywem.
aplikacja/projekt/frontend/ ├── <Dostawca>/ │ │ ├──...<motyw>/ │ │ ├── ... │ │ ├── ...
Nazwa folderu konwencjonalnie pasuje do nazewnictwa używanego w kodzie motywu: dowolny zestaw znaków alfanumerycznych, według dostawcy, jest akceptowalny. Ta konwencja jest jedynie zaleceniem, więc nic nie stoi na przeszkodzie, aby nazwać ten katalog w inny sposób.
Zadeklaruj swój motyw
Po utworzeniu katalogu dla motywu należy utworzyć theme.xml
zawierający co najmniej nazwę motywu i nazwę motywu nadrzędnego (jeśli motyw dziedziczy po jednym). Opcjonalnie możesz określić, gdzie ma być przechowywany obraz podglądu motywu.
- Dodaj lub skopiuj z istniejącego
theme.xml
do katalogu motywówapp/design/frontend/<Vendor>/<theme>
- Skonfiguruj go, korzystając z następującego przykładu:
<theme xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "urn:magento:framework:Config/etc/theme.xsd" > <title> New theme </title> <!-- your theme's name --> <parent> Magento/blank </parent> <!-- the parent theme, in case your theme inherits from an existing theme --> <media> <preview_image> media/preview.jpg </preview_image> <!-- the path to your theme's preview image --> </media> </theme>
Zmień swój motyw w pakiet kompozytorski (opcjonalnie)
Domyślne motywy gento są dystrybuowane jako pakiety Composer.
Aby rozpowszechniać motyw jako pakiet, dodaj plik composer.json
do katalogu motywu i zarejestruj pakiet na serwerze pakietów. Domyślnym publicznym serwerem pakietów jest https://packagist.org/.
composer.json
zawiera informacje o zależnościach motywu.
Przykład motywu composer.json
:
{ "name" : "magento/theme-frontend-luma" , "description" : "N/A" , "require" : { "php" : "~5.5.0|~5.6.0|~7.0.0" , "magento/theme-frontend-blank" : "100.0.*" , "magento/framework" : "100.0.*" }, "type" : "magento2-theme" , "version" : "100.0.1" , "license" : [ "OSL-3.0" , "AFL-3.0" ], "autoload" : { "files" : [ "registration.php" ] } }
Szczegóły dotyczące integracji Composera w systemie Magento znajdziesz w dziale Integracja Composer.
Dodaj rejestrację.php
Aby zarejestrować motyw w systemie, w katalogu motywów dodaj plik registration.php
o następującej treści:
<?php /** * Copyright 2015 Magento. All rights reserved. * See COPYING.txt for license details. */ \Magento\Framework\Component\ComponentRegistrar :: register ( \Magento\Framework\Component\ComponentRegistrar :: THEME , 'frontend/<Vendor>/<theme>' , __DIR__ );
Gdzie <Vendor>
to nazwa dostawcy, <theme>
to kod motywu.
Aby zobaczyć ilustrację, zobacz plik registration.php motywu Magento Luma.
Skonfiguruj obrazy
Rozmiary obrazów produktów i inne właściwości używane w witrynie sklepowej są konfigurowane w pliku konfiguracyjnym view.xml
. Jest to wymagane dla motywu, ale jest opcjonalne, jeśli istnieje w motywie nadrzędnym.
Jeśli rozmiary obrazu produktu w Twoim motywie różnią się od tych z motywu nadrzędnego lub jeśli motyw nie dziedziczy z żadnego motywu, dodaj view.xml
, wykonując następujące czynności:
- Zaloguj się do serwera Magento jako użytkownik z uprawnieniami do tworzenia katalogów i plików w katalogu instalacyjnym Magento. (Zazwyczaj jest to właściciel systemu plików Magento.)
- Utwórz katalog
etc
w swoim folderze motywu - Skopiuj
view.xml
z kataloguetc
istniejącego motywu (na przykład z motywu Blank) do kataloguetc
motywu. - Skonfiguruj wszystkie rozmiary obrazów produktów w witrynie sklepowej w
view.xml
. Na przykład, możesz sprawić, by siatka kategorii wyświetlała zdjęcia produktów jako kwadratowa, określając rozmiar 250 x 250 pikseli, oto jak wyglądałaby odpowiednia konfiguracja:
... <image id= "category_page_grid" type= "small_image" > <width> 250 </width> <height> 250 </height> </image> ...
Aby uzyskać szczegółowe informacje na temat konfiguracji obrazów w view.xml
, zobacz właściwości Konfigurowanie obrazów dla tematu kompozycji.
Twórz katalogi dla plików statycznych
Twój motyw prawdopodobnie będzie zawierał kilka typów plików statycznych: style, czcionki, JavaScript i obrazy. Każdy typ powinien być przechowywany w osobnym podkatalogu web
w folderze motywu:
aplikacja/projekt/<obszar>/<Dostawca>/<motyw>/ ├── sieć/ │ ├── css/ │ │ ├── źródło/ │ ├── czcionki/ │ ├── obrazy/ │ ├── js/
W .../<theme>/web/images
przechowujesz ogólne pliki statyczne związane z motywem. Na przykład logo motywu jest przechowywane w ...<theme>/web/images
. Jest prawdopodobne, że Twój motyw będzie również zawierał pliki specyficzne dla modułu, które są przechowywane w odpowiednich podkatalogach, takich jak .../<theme>/<Namespace_Module>/web/css
i podobne. Zarządzanie plikami motywów poszczególnych modułów zostało omówione w kolejnych rozdziałach tego przewodnika.
Twoja struktura katalogów motywów teraz
W tym momencie struktura pliku motywu wygląda następująco:
aplikacja/projekt/frontend/<Dostawca>/ ├── <motyw>/ │ ├── itp/ │ │ ├── view.xml │ ├── web/ │ │ ├── obrazy │ │ │ logo.svg │ ├── motyw.xml ├── kompozytor.json
Logo motywu
W aplikacji Magento domyślnym formatem i nazwą obrazu logo jest logo.svg
. Po umieszczeniu obrazu logo.svg
w konwencjonalnej lokalizacji, czyli <theme_dir>/web/images
, jest on automatycznie rozpoznawany jako logo motywu. Jest wyświetlany w nagłówku strony sklepu po zastosowaniu motywu.
W motywie niestandardowym możesz użyć pliku logo o innej nazwie i formacie, ale może być konieczne jego zadeklarowanie.
Konieczność deklaracji zależy od tego, czy Twój motyw ma motyw nadrzędny i jego logo. Możliwe są następujące przypadki:
- Twój motyw nie ma motywu nadrzędnego:
- jeśli nazwa i format obrazu logo jest domyślny,
logo.svg
, nie ma potrzeby deklarowania tego; - jeśli nazwa lub format obrazu logo nie jest domyślny, należy to zadeklarować w układzie.
- jeśli nazwa i format obrazu logo jest domyślny,
- Twój motyw ma motyw nadrzędny:
- jeśli obraz logo motywu ma taką samą nazwę i format jak logo motywu rodzica, nie ma potrzeby deklarowania go;
- jeśli obraz logo ma inną nazwę lub format, zadeklaruj to w układzie.
Deklarowanie logo motywu
Aby zadeklarować logo motywu, dodaj rozszerzający układ <theme_dir>/Magento_Theme/layout/default.xml
.
Na przykład, jeśli plik logo ma rozmiar my_logo.png
300x300px, musisz zadeklarować go w następujący sposób:
<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" > 300 </argument> <argument name= "logo_img_height" xsi:type= "number" > 300 </argument> </arguments> </referenceBlock> </body> </page>
Deklarowanie rozmiaru logo jest opcjonalne.
Odwiedź blog Magesolution, aby przeczytać pełny samouczek Magento 2 i zaktualizować najnowsze samouczki dotyczące Magento 2.
Źródło: magento.com