Тематика для Magento 2 - Починаючи з нуля


27

Деякі з вас, напевно, читали цю тему щодо тематизації з нуля для Magento 1: Theming - починаючи з нуля

Мені було цікаво, що було б найкращою практикою розробити тему з нуля для Magento 2?

  • Чи будуєте ви, використовуючи рідну мову lumaчи blankтему? Або що-небудь ще?
  • Чи використовуєте ви якесь розширення, щоб допомогти вам розробити свою тему?
  • Яких кроків ви дотримуєтесь, розробляючи тему з нуля?

Я надаю кілька посилань у своїй відповіді, будь ласка, перейдіть по ній, ви дізнаєтесь про інтерфейс архітектури та розвиток Magento 2.0.
Asheem Patro

Дотримуйтесь вказівок Magento docs devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/…, щоб створити тему для фронтенду.
Rishabh Rk Rai

Відповіді:


45

TL: DR

Чи будуєте ви, використовуючи рідну луму чи порожню тему? Або що-небудь ще?

Це вирішувати саме вам, оголошення батьківської теми необов’язковим. Якщо ви не заявляєте батьків, ви все одно будете відновлювати модулі (наприклад, Magento_Catalog), які надають XML-файли та файли шаблонів, але не мають стилів.

Чи використовуєте ви якесь розширення, щоб допомогти вам розробити свою тему?

Оскільки я вважаю за краще працювати з SCSS та GULP, тепер використовую Frontools та порожню тему SCSS . Це знімає велику напругу, пов’язану з робочим потоком за умовчанням Grunt / LESS

Яких кроків ви дотримуєтесь, розробляючи тему з нуля?

  1. Оголосіть тему
  2. Видаліть батьківську тему CSS (якщо потрібно)
  3. Додайте свій власний CSS / МЕНШЕ / SCSS

Моя особиста думка - найкраще створити власну «порожню тему» ​​з нуля, оскільки ви зможете адаптувати це саме до того, що вам потрібно.

Ось як я створив би тему з нуля, я використовував NewStore / за замовчуванням як свого постачальника та назву теми.

Тепер для більш детальної відповіді ...

Створіть тему (відповідно до офіційних документів)

Створіть тему згідно з офіційними документами

За бажанням оголосити батьків

У app/design/frontend/NewStore/default/theme.xmlвас є вибір оголошення батьківської теми чи ні, для цього прикладу я залишив рядок 3 ( <parent>Vendor/theme</parent>), тому немає батьківської теми . Це означає, що всі файли шаблонів / макетів надходитимуть від самих модулів, а не Blank або Luma, і стилі теми не будуть, оскільки це додано в порожню тему.

Мій topic.xml виглядає так:

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

Видаліть стилізацію (якщо встановлено батьківську тему) та додайте свій власний CSS

Якщо ви встановите порожнє або Luma як батьків, вам потрібно не допустити завантаження файлів CSS. Для цього створіть app/design/frontend/NewStore/default/Magento_Theme/layout/default_head_blocks.xmlта додайте наступний XML:

<?xml version="1.0" ?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>

        <!-- Remove blank/luma theme styling if you declared a parent -->
        <remove src="css/styles-m.css" />
        <remove src="css/styles-l.css" />
        <remove src="css/print.css" />

        <!-- Add your own CSS files -->
        <css src="css/styles.css" />
    </head>
</page>

Це призведе до видалення styles-m.css, styles-l.cssі print.cssдодав тему порожній. Він також додає styles.css як базу для власного CSS.

Якщо ви не вказали батьків, ви можете видалити 3 <remove />теги з коду вище.

Додайте свій власний CSS

Тепер ви можете налаштувати свою тему, але будь ласка, я прихильник Sass, а не менше, тому я додав цей файл - app/design/frontend/NewStore/default/web/css/styles.scss

Я змінив тут колір тла лише для того, щоб довести, що це працює, в ідеалі ви використовуєте цей файл лише для імпорту інших файлів Sass / Less.

Результат

Результатом того, що я щойно робив, є тема без стилізації (крім мого прекрасного зеленого фону), що дозволяє вам стилізувати свою тему, не працюючи зі стилями Magento (іноді складно працювати).

введіть тут опис зображення

Поради

  • Якщо ви віддаєте перевагу роботі з SCSS і не маєте часу створювати тему з нуля, рекомендую використовувати Frontools та пусту тему SCSS як від Snowdog Apps .

  • Мені здається, що найспритнішим аспектом роботи з Magento переднього коду є те, наскільки специфічним є їх стиль, щоб уникнути цього, я б рекомендував використовувати конвенцію BEM про іменування під час написання власного стилю.

  • Також корисні коментарі є ключовими, якщо розробник, який працював з Luma / Blank, працював над темою, побудованою з нуля, вони, ймовірно, знайдуть, що все працює зовсім інакше, ніж вони очікують.


Я створив власну порожню тему, використовуючи ваші вказівки, без батьківської теми, визначеної в theme.xml. Однак на передньому кінці все ще є всілякі стилі. Установка Magento знаходиться в developerрежимі, і всі кеші були очищені. Я не знаю, звідки беруться всі ці стилі - у вас ідея?
fritzmg

Чи встановлені розширення / плагіни? Також це може бути Varnish, якщо він встановлений, щоб виключити додавання знака питання та випадкової рядки після URL-адреси, наприклад?=123
Ben Crook

Так, я виключив лак (або подібний). Немає розширень чи плагінів.
fritzmg

Це повна тема стилю чи просто її частини? Мені важко сказати, не бачачи сайту та кодової бази. Можливо, задайте нове запитання та опублікуйте там деякі деталі? Якщо ви позначите мене, я побачу, чи зможу це розробити.
Бен Крук

Наскільки я бачу, це повна тематика. Плюс включений CSS-файл із власної теми. Так, напевно, краще створити нове запитання для цього :)
fritzmg

8

Існує багато навчальних посібників для запуску теми в Magento 2.0. Я надаю деякі відеопосилання та звичайні посилання, де ви можете отримати хороші знання про тему розвитку в magento 2.0. натисніть тут для відео

також посилайтесь на це посилання

http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-create.html

http://blog.magestore.com/how-to-create-custom-theme-on-magento-2-part-1/

За цим посиланням ви дізнаєтесь про інтерфейс архітектури magento 2.0

http://inchoo.net/magento-2/frontend-theme-architecture/

також перевірте ці два посилання

http://www.webmull.com/magento-2-create-new-custom-theme/

http://www.slideshare.net/Magestorecom/how-to-create-theme-in-magento-2-part-1


5

Я успадковую порожнє, але я швидко рухаюся до спроби створити більш легку базову тему, що має набагато менш складну структуру CSS.

Варто зазначити, що у 2015 році Magento вийшли та сказали, що не рекомендують успадковуватись від luma, оскільки вони залишають за собою право вносити анонсовані зміни до нього для власних маркетингових та демонстраційних цілей. Пізніше вони переглянули це твердження, сказавши, що їх мета дозволити успадкування .


3

Найкращий спосіб почати розробку теми - це почати з успадкування від lumaабо blank. Причиною цього є те, що вони побудовані так, щоб бути чуйними (тобто дружніми з різною роздільною здатністю). Це також зменшує обсяг роботи, яку вам доведеться виконати над створенням різних файлів шаблонів та визначень JS / CSS. Все, що вам потрібно зробити, - це просто переосмислити лише ті частини, які ви хочете налаштувати своїми власними. Дивіться посилання нижче для різних інструкцій щодо розробки теми.

Посилання на документацію Magento:


Файли шаблонів тепер надходять з модулів, а не пусті / luma, тому ви можете їх афективно обійти, якщо вам не потрібні стилі / зміни. Наприклад, якщо ви подивитеся на додаток / дизайн / frontend / Magento / blank / Magento_Catalog, все, що це робиться, - це перемістити один елемент і додати трохи стилів, шаблони надходять із програми / коду / Magento / Catalog / view / frontend / шаблони та додаток / код / ​​Magento / Каталог / перегляд / база / шаблони
Ben Crook
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.