W theme
tabeli znajduje się type
pole z 3 możliwymi wartościami: fizycznym, wirtualnym i pomostowym.
Kiedy stosować fizyczny wirtualny i tymczasowy motyw?
Kiedy rozszerzyłem motyw Luma, mój nowy motyw pojawia się w tabeli motywów jako typ wirtualny. Wygląda jednak na to, że ten typ nie pozwala na przesłonięcie niektórych plików, a jedynie zmianę typu motywu z wirtualnego na fizyczny pozwolę na rozszerzenie na przykład Magento_Theme
pakietu.
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],];
Odpowiedzi:
Istnieją 3 różne typy zdefiniowane w
Magento/Framework/View/Design/ThemeInterface
:Tematy fizyczne
Fizyczne odnosi się do faktu, że te motywy są definiowane przez pliki. Na przykład puste i motyw Luma są fizycznie zdefiniowane w
app/design/frontend/
Motywy wirtualne
Nie jest to jeszcze jasne, ale myślę, że wirtualne motywy odnoszą się do motywów, które możesz utworzyć w backendie, który rozszerza istniejące motywy fizyczne, ale wygląda na to, że nie jest jeszcze w pełni zaimplementowany.
Widać, że w sekcji edycji dostępne są dwie zakładki tylko dla motywów wirtualnych, które pozwalają na tworzenie niestandardowych CSS i JS dla motywu wirtualnego.
Myślę, że wirtualny motyw byłby czymś, co tymczasowo konfigurujesz (jak motyw świąteczny) na krótki okres motywu i który wymaga jedynie kilku zmian w projekcie w porównaniu do motywu fizycznego, który rozszerza.
Nie ma jeszcze przycisku Dodaj motyw wirtualny, ale jeśli uruchomisz następujące zapytanie SQL, możesz skonfigurować wirtualny motyw, a podczas edycji zobaczysz kartę CSS i JS:
I proszę bardzo, dwie dodatkowe zakładki i przyciski Zapisz / Usuń:
Tematy sceniczne
Myślę, że tematy związane z inscenizacją są powiązane z funkcją inscenizacji Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html
Zakładam, że możesz mieć motyw inscenizacji podczas kampanii, ale nie jestem w 100% pewien.
źródło
type
kolumną natheme
stole: utworzyłem motyw i jakośtype
wartość została ustawiona na1
(zamiast domyślnej0
). Wszystkie moje zmiany LESS / JS działały, ale Magento nie czytał żadnych plików układu z mojego motywu, dopóki nie zmieniłemtype
wartości na0
. Więcej na ten temat tutaj: nahuelsanchez.com/…