В 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],];
Ответы:
Есть 3 различных типа, определенных в
Magento/Framework/View/Design/ThemeInterface
:Физические темы
Физический относится к тому факту, что эти темы определяются файлами. Например, бланк и тема яркости физически определены в
app/design/frontend/
Виртуальные темы
Это пока неясно, но я думаю, что виртуальные темы относятся к темам, которые вы можете создать в бэкэнде, что расширяет существующие физические темы, но кажется, что они еще не полностью реализованы.
Вы можете видеть, что есть две вкладки, доступные в разделе редактирования только для виртуальных тем, которые позволяют вам предоставлять пользовательские CSS и JS для виртуальной темы.
Я считаю, что виртуальная тема - это то, что вы временно настраиваете (например, рождественская тема) на короткий период темы, и для этого требуется всего несколько изменений дизайна по сравнению с физической темой, которую она расширяет.
Кнопка «Добавить виртуальную тему» пока недоступна, но если вы выполните следующий запрос SQL, вы можете настроить виртуальную тему, и вы увидите вкладку CSS и JS при ее редактировании:
И вот, две дополнительные вкладки и кнопки Сохранить / Удалить:
Постановочные темы
Я считаю, что темы подготовки связаны с функцией подготовки Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html
Я предполагаю, что вы можете иметь промежуточную тему при использовании кампании, но я не уверен на 100%.
источник
type
столбцом вtheme
таблице: я создал тему и каким-то образомtype
получил значение1
(вместо значения по умолчанию0
). Все мои изменения LESS / JS работали, но Magento не считывал файлы макетов из моей темы, пока я не изменилtype
значение на0
. Подробнее об этом здесь: nahuelsanchez.com/…