Magento 2 - Theme Type 0: physical, 1: virtual, 2: inscenizacja. Kiedy użyć?


30

W themetabeli znajduje się typepole 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_Themepakietu.


Dobre pytanie Może nie być pewny0: 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 - ?
Ankit Shah

Odwołaj się dovendor\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],];
Ankit Shah,

Odpowiedzi:


32

Istnieją 3 różne typy zdefiniowane w Magento/Framework/View/Design/ThemeInterface:

  • Typ fizyczny
  • Typ wirtualny
  • Typ inscenizacji

Tematy fizyczne

Fizyczne odnosi się do faktu, że te motywy są definiowane przez pliki. Na przykład puste i motyw Luma są fizycznie zdefiniowane wapp/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:

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');

I proszę bardzo, dwie dodatkowe zakładki i przyciski Zapisz / Usuń:

wprowadź opis zdjęcia tutaj

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.


Właśnie rozwiązałeś mój problem tutaj, Raph! Dziękuję - Alvin :)
Alvin Nguyen

1
Wystąpił problem z typekolumną na themestole: utworzyłem motyw i jakoś typewartość została ustawiona na 1(zamiast domyślnej 0). Wszystkie moje zmiany LESS / JS działały, ale Magento nie czytał żadnych plików układu z mojego motywu, dopóki nie zmieniłem typewartości na 0. Więcej na ten temat tutaj: nahuelsanchez.com/…
Erik Hansen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.