Magento 2 - Tipo di tema 0: fisico, 1: virtuale, 2: messa in scena. Quando usare?


30

Nella themetabella c'è un typecampo con 3 possibili valori: fisico, virtuale e stadiazione.

Quando utilizzare il tema fisico virtuale e di gestione temporanea?

Quando ho esteso il tema luma, il mio nuovo tema appare nella tabella dei temi come tipo virtuale. Ma sembra che questo tipo non permetta di sovrascrivere alcuni file, e solo cambiando il tipo di tema da virtuale a fisico mi permetto di estendere ad esempio il Magento_Themepacchetto.


Buona domanda Potrebbe non essere sicuro0: 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,

Fare riferimento avendor\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,

Risposte:


32

Ci sono 3 diversi tipi definiti in Magento/Framework/View/Design/ThemeInterface:

  • Tipo fisico
  • Tipo virtuale
  • Tipo di stadiazione

Temi fisici

Fisico si riferisce al fatto che questi temi sono definiti da file. Ad esempio, il tema vuoto e luma sono definiti fisicamente inapp/design/frontend/

Temi virtuali

Ciò non è ancora chiaro ma penso che i temi virtuali si riferiscano a temi che è possibile creare nel backend che estende i temi fisici esistenti ma sembra che non sia ancora completamente implementato.

Puoi vedere che ci sono due schede disponibili nella sezione di modifica solo per temi virtuali che ti consentono di fornire CSS e JS personalizzati per un tema virtuale.

Credo che un tema virtuale sarebbe qualcosa che hai impostato temporaneamente (come il tema natalizio) per un breve periodo di tema e che richiede solo poche modifiche al design rispetto al tema fisico che estende.

Non è ancora disponibile il pulsante Aggiungi tema virtuale ma se esegui la seguente query SQL puoi impostare un tema virtuale e vedrai le schede CSS e JS durante la modifica:

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

Ed ecco qua, due schede extra e i pulsanti Salva / Elimina:

inserisci qui la descrizione dell'immagine

Temi di messa in scena

Suppongo che i temi della stadiazione siano correlati alla funzione di stadiazione EE di Magento 2.1: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Presumo che tu possa avere un tema di messa in scena quando usi una campagna ma non ne sono sicuro al 100%.


Hai appena risolto il mio problema proprio qui Raph! Grazie - Alvin :)
Alvin Nguyen il

1
Ho riscontrato un problema con la typecolonna sul themetavolo: ho creato un tema e in qualche modo il typevalore è stato impostato su 1(anziché il valore predefinito di 0). Tutte le mie modifiche a MENO / JS hanno funzionato, ma Magento non ha letto alcun file di layout dal mio tema fino a quando non ho modificato il typevalore in 0. Maggiori informazioni qui: nahuelsanchez.com/…
Erik Hansen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.