Руководство по созданию темы в Magento 2
Опубликовано: 2015-11-20Привет! Вас интересует Magento 2.0 с множеством обновлений и изменений? Сегодня мы хотели бы поделиться с вами сообщением в блоге о руководстве по созданию темы в Magento 2. Всегда будьте в курсе, практикуясь каждый день.
Последнее обновление: мы только что выпустили версию 2.0 многоцелевой темы Claue Magento 2 с множеством улучшений производительности и эксклюзивных функций. Проверьте эту тему сейчас: Claue Magento Theme 2. 0
Живая демонстрация
Claue — Clean, Minimal Magento 2&1 Theme — отличный шаблон для современного и чистого магазина электронной коммерции с более чем 40 макетами домашней страницы и множеством вариантов для магазина, блога, портфолио, макетов локатора магазинов и других полезных страниц. Claue версии 2.0 поставляется с множеством эксклюзивных функций, включая:
- На основе темы Luma.
- Соответствует всем стандартам темы Magento
- Значительное улучшение производительности
- Совместим с большинством сторонних расширений.
- Полностью совместим с Magento 2.4.x
Эта вторая расширенная версия полностью отличается от предыдущей. Таким образом, если вы используете Claue версии 1 и хотите обновиться до Claue версии 2, вы можете только пересобрать новый веб-сайт, а не обновлять старую версию. Теперь вернемся к основной теме.
Система тем немного изменилась в Magento 2, но есть сходства. В этом разделе обсуждается, как создать файлы, из которых состоит тема, как добавить логотип в тему и как изменить размер изображений.
Создайте каталог темы
Чтобы создать каталог для вашей темы:
- Перейдите в
<your Magento install dir>/app/design/frontend
. - Создайте новый каталог с именем в соответствии с именем вашего поставщика:
/app/design/frontend/<Vendor>
. - В каталоге поставщика создайте каталог с именем в соответствии с вашей темой.
приложение/дизайн/интерфейс/ ├── <Продавец>/ │ │ ├──...<тема>/ │ │ │ ├── ... │ │ │ ├── ...
Имя папки условно соответствует именованию, используемому в коде темы: допустим любой буквенно-цифровой набор символов, какой сочтет нужным вендор. Это соглашение является просто рекомендацией, поэтому ничто не мешает назвать этот каталог по-другому.
Объявите свою тему
После создания каталога для вашей темы вы должны создать theme.xml
, содержащий как минимум имя темы и имя родительской темы (если тема наследуется от одного из них). При желании вы можете указать, где хранится изображение предварительного просмотра темы.
- Добавьте или скопируйте существующий
theme.xml
в каталог вашей темыapp/design/frontend/<Vendor>/<theme>
. - Настройте его, используя следующий пример:
<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>
Сделайте свою тему пакетом Composer (необязательно)
Темы gento по умолчанию распространяются в виде пакетов Composer.
Чтобы распространять тему в виде пакета, добавьте файл composer.json
в каталог темы и зарегистрируйте пакет на сервере пакетов. Общедоступный сервер упаковки по умолчанию — https://packagist.org/.
composer.json
предоставляет информацию о зависимости темы.
Пример темы 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" ] } }
Подробную информацию об интеграции Composer в систему Magento можно найти в разделе Интеграция с Composer.
Добавить регистрацию.php
Чтобы registration.php
вашу тему в системе, добавьте в директорию вашей темы файл Registration.php следующего содержания:
<?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__ );
Где <Vendor>
— имя вашего поставщика, <theme>
— код темы.
Для иллюстрации см. файл Registration.php темы Magento Luma.
Настроить изображения
Размеры изображений товаров и другие свойства, используемые на витрине, настраиваются в файле конфигурации view.xml
. Он обязателен для темы, но необязателен, если существует в родительской теме.
Если размеры изображений продукта в вашей теме отличаются от размеров родительской темы или если ваша тема не наследуется ни от какой темы, добавьте view.xml
, выполнив следующие действия:
- Войдите на свой сервер Magento как пользователь с разрешениями на создание каталогов и файлов в каталоге установки Magento. (Как правило, это владелец файловой системы Magento.)
- Создайте каталог
etc
в папке вашей темы - Скопируйте
view.xml
из каталогаetc
существующей темы (например, из пустой темы) в каталогetc
вашей темы. - Настройте все размеры изображений товаров на витрине в
view.xml
. Например, вы можете сделать изображение товара в виде сетки категорий квадратным, указав размер 250 x 250 пикселей, вот как будет выглядеть соответствующая конфигурация:
... <image id= "category_page_grid" type= "small_image" > <width> 250 </width> <height> 250 </height> </image> ...
Дополнительные сведения о настройке изображений в view.xml
см. в разделе Настройка свойств изображений для темы.
Создание каталогов для статических файлов
Ваша тема, скорее всего, будет содержать несколько типов статических файлов: стили, шрифты, JavaScript и изображения. Каждый тип должен храниться в отдельном подкаталоге web
в папке вашей темы:
app/design/<область>/<поставщик>/<тема>/ ├── веб/ │ ├── css/ │ │ ├── источник/ │ ├── шрифты/ │ ├── изображения/ │ ├── js/
В .../<theme>/web/images
вы храните статические файлы, связанные с общей темой. Например, логотип темы хранится в ...<theme>/web/images
. Вполне вероятно, что ваша тема также будет содержать файлы, относящиеся к модулям, которые хранятся в соответствующих подкаталогах, например .../<theme>/<Namespace_Module>/web/css
и подобные. Управление файлами тем для конкретных модулей обсуждается в следующих разделах этого руководства.
Структура каталогов вашей темы сейчас
На данный момент файловая структура вашей темы выглядит следующим образом:
приложение/дизайн/интерфейс/<Поставщик>/ ├── <тема>/ │ ├── и т. д./ │ │ ├── view.xml │ ├── веб/ │ │ ├── изображения │ │ │ ├── logo.svg │ ├── theme.xml │ ├── composer.json
Логотип темы
В приложении Magento формат и имя изображения логотипа по умолчанию — logo.svg
. Когда вы помещаете изображение logo.svg
в обычное место, которым является <theme_dir>/web/images
, оно автоматически распознается как логотип темы. Он отображается в заголовке страницы вашего магазина после применения темы.
В своей пользовательской теме вы можете использовать файл логотипа с другим именем и форматом, но вам может потребоваться объявить его.
Необходимость объявления зависит от того, есть ли у вашей темы родительская тема и ее логотип. Возможны следующие случаи:
- У вашей темы нет родительской темы:
- если имя и формат вашего изображения логотипа по умолчанию,
logo.svg
, нет необходимости объявлять его; - если имя или формат изображения вашего логотипа не установлены по умолчанию, вам необходимо объявить их в макете.
- если имя и формат вашего изображения логотипа по умолчанию,
- У вашей темы есть родительская тема:
- если изображение логотипа вашей темы имеет то же имя и формат, что и логотип родительской темы, объявлять его не нужно;
- если ваше изображение логотипа имеет другое имя или формат, объявите его в макете.
Объявление логотипа темы
Чтобы объявить логотип темы, добавьте расширяющий <theme_dir>/Magento_Theme/layout/default.xml
.
Например, если ваш файл логотипа имеет размер my_logo.png
300x300px, вам нужно объявить его следующим образом:
<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>
Объявление размера логотипа не является обязательным.
Посетите блог Magesolution, чтобы прочитать полное руководство по Magento 2 и обновить последние руководства по Magento 2.
Источник: magento.com