Magento 2 - Theme Type 0: physisch, 1: virtuell, 2: Inszenierung. Wann verwenden?


30

In der themeTabelle gibt es ein typeFeld mit 3 möglichen Werten: physisch, virtuell und Staging.

Wann sollte ein physisches virtuelles und ein Staging-Thema verwendet werden?

Wenn ich das Luma-Thema erweitert habe, wird mein neues Thema in der Thementabelle als virtueller Typ angezeigt. Aber es sieht so aus, als ob dieser Typ das Überschreiben einiger Dateien nicht zulässt. Wenn ich nur den Designtyp von virtuell auf physisch ändere, kann ich zum Beispiel das Magento_ThemePaket erweitern.


Gute Frage 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 - ?
Kann

Beziehen auf 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],];
Ankit Shah

Antworten:


32

Es gibt 3 verschiedene Typen definiert in Magento/Framework/View/Design/ThemeInterface:

  • Physikalischer Typ
  • Virtueller Typ
  • Staging-Typ

Physische Themen

Physisch bezieht sich auf die Tatsache, dass diese Themen durch Dateien definiert sind. Beispielsweise werden das leere Thema und das Luma-Thema physikalisch unter definiertapp/design/frontend/

Virtuelle Themen

Dies ist noch unklar, aber ich denke, virtuelle Themen beziehen sich auf Themen, die Sie im Backend erstellen können, wodurch vorhandene physische Themen erweitert werden. Es scheint jedoch, dass sie noch nicht vollständig implementiert sind.

Sie können sehen, dass im Bearbeitungsbereich nur für virtuelle Themen zwei Registerkarten verfügbar sind, auf denen Sie benutzerdefiniertes CSS und JS für ein virtuelles Thema bereitstellen können.

Ich gehe davon aus, dass ein virtuelles Thema vorübergehend eingerichtet wird (z. B. ein Weihnachtsthema) und dass nur wenige Designänderungen im Vergleich zu dem physischen Thema erforderlich sind, das es erweitert.

Es ist noch keine Schaltfläche zum Hinzufügen eines virtuellen Themas verfügbar. Wenn Sie jedoch die folgende SQL-Abfrage ausführen, können Sie ein virtuelles Thema einrichten und die Registerkarte CSS und JS sehen, wenn Sie es bearbeiten:

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

Und hier sind zwei zusätzliche Registerkarten und Schaltflächen zum Speichern / Löschen:

Bildbeschreibung hier eingeben

Themen inszenieren

Ich gehe davon aus, dass Staging-Themen mit der Magento 2.1 EE-Staging-Funktion zusammenhängen: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Ich gehe davon aus, dass Sie ein Staging-Thema haben können, wenn Sie eine Kampagne verwenden, aber ich bin nicht 100% sicher.


Du hast gerade mein Problem gelöst, Raph! Vielen Dank - Alvin :)
Alvin Nguyen

1
Ich bin auf ein Problem mit der typeSpalte in der themeTabelle gestoßen: Ich habe ein Thema erstellt und irgendwie wurde der typeWert auf 1(anstelle des Standardwerts von 0) gesetzt. Alle meine WENIGER / JS-Änderungen haben funktioniert, aber Magento hat keine Layoutdateien aus meinem Design gelesen, bis ich den typeWert auf geändert habe 0. Mehr dazu hier: nahuelsanchez.com/
Erik Hansen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.