Magento 2 - Тема Тип 0: фізична, 1: віртуальна, 2: інсценізація. Коли користуватися?


30

У themeтаблиці є typeполе з 3 можливими значеннями: фізичне, віртуальне та поетапне.

Коли використовувати фізичну віртуальну та постановочну тему?

Коли я розширював тему luma, моя нова тема з’являється в таблиці тем як віртуальний тип. Але схоже, що цей тип не дозволяє переосмислити деякі файли, і лише зміна типу теми з віртуальної на фізичну дозволить мені поширити, наприклад, Magento_Themeпакет.


Добре запитання Може бути не впевненим0: Physical - Magento Default Theme (Example: Magento Blank, Magento Luma, Magento 2 Backend) 1: Virtual - Custom Theme which is created by you (custom) which has parent as Default Theme (Example: My Theme) 2: Staging - ?
Анкіт Шах

Зверніться доvendor\magento\module-theme\Model\Theme\Registration.php /** Allowed sequence relation by type, array(parent theme, child theme) * @var array */ protected $_allowedRelations = [ [ThemeInterface::TYPE_PHYSICAL, ThemeInterface::TYPE_VIRTUAL], [ThemeInterface::TYPE_VIRTUAL, ThemeInterface::TYPE_STAGING],]; /** Forbidden sequence relation by type ** @var array*/ protected $_forbiddenRelations = [[ThemeInterface::TYPE_VIRTUAL, ThemeInterface::TYPE_VIRTUAL],[ThemeInterface::TYPE_PHYSICAL, ThemeInterface::TYPE_STAGING],];
Анкіт Шах

Відповіді:


32

Існує 3 різних типи, визначені в Magento/Framework/View/Design/ThemeInterface:

  • Фізичний тип
  • Віртуальний тип
  • Постановочний тип

Фізичні теми

Фізична стосується того, що ці теми визначаються файлами. Наприклад, тема пустих і лума фізично визначена підapp/design/frontend/

Віртуальні теми

Це поки незрозуміло, але я думаю, що віртуальні теми відносяться до тем, які ви можете створити в бекенді, який розширює існуючі фізичні теми, але, здається, він ще не повністю реалізований.

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

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

Ще немає кнопки Додати віртуальну тему, але якщо запустити наступний SQL-запит, ви можете встановити віртуальну тему, і ви побачите вкладку CSS та JS під час її редагування:

INSERT INTO `theme` (`theme_id`, `parent_id`, `theme_path`, `theme_title`, `preview_image`, `is_featured`, `area`, `type`, `code`) VALUES (NULL, '1', NULL, 'test', NULL, '0', 'frontend', '1', 'test/test');

І ось, дві додаткові вкладки та кнопки Зберегти / Видалити:

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

Постановочна тематика

Я вважаю, що теми постановки пов’язані з функцією постановки Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Я припускаю, що ви можете мати постановочну тему під час використання кампанії, але я не впевнений на 100%.


Ти щойно вирішив мою проблему тут, Раф! Дякую - Алвін :)
Альвін Нгуен

1
Я зіткнувся з проблемою зі typeстовпцем на themeстолі: я створив тему і якось встановив typeзначення 1(замість за замовчуванням 0). Усі мої зміни МЕНШ / JS працювали, але Magento не читав жодних файлів макета з моєї теми, поки я не змінив typeзначення на 0. Більше про це тут: nahuelsanchez.com/…
Ерік Хансен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.