Magento 2 - Tipo de tema 0: físico, 1: virtual, 2: estadiamento. Quando usar?

30

Na themetabela, há um typecampo com 3 valores possíveis: físico, virtual e intermediário.

Quando usar o tema virtual virtual e de preparação?

Quando estendi o tema luma, meu novo tema aparece na tabela de temas como tipo virtual. Mas parece que esse tipo não permite substituir alguns arquivos, e apenas alterar o tipo de tema de virtual para físico me permite estender, por exemplo, o Magento_Themepacote.

Pawel Dubiel
fonte
Boa pergunta pode ser não tenho certeza0: 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
Consultevendor\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

Respostas:

32

Existem 3 tipos diferentes definidos em Magento/Framework/View/Design/ThemeInterface:

  • Tipo físico
  • Tipo virtual
  • Tipo de preparação

Temas físicos

Físico refere-se ao fato de que esses temas são definidos por arquivos. Por exemplo, os temas em branco e luma são fisicamente definidos emapp/design/frontend/

Temas virtuais

Isso ainda não está claro, mas acho que os temas virtuais se referem aos temas que você pode criar no back-end, que estende os temas físicos existentes, mas parece que ainda não foi totalmente implementado.

Você pode ver que há duas guias disponíveis na seção de edição apenas para temas virtuais, que permitem fornecer CSS e JS personalizados para um tema virtual.

Eu acho que um tema virtual seria algo que você configurou temporariamente (como o tema do Natal) por um curto período de tema e que requer apenas poucas alterações de design em comparação com o tema físico que ele estende.

Ainda não existe um botão Adicionar tema virtual, mas se você executar a seguinte consulta SQL, poderá configurar um tema virtual e verá a guia CSS e JS ao editá-lo:

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

E aqui está, duas guias extras e os botões Salvar / Excluir:

insira a descrição da imagem aqui

Temas de preparação

Eu acho que os temas de preparação estão relacionados ao recurso de preparação do Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Presumo que você possa ter um tema de preparação ao usar uma campanha, mas não tenho 100% de certeza.

Raphael na Digital Pianism
fonte
Você acabou de resolver meu problema aqui, Raph! Obrigado - Alvin :) #
485 Alvin Nguyen
1
Encontrei um problema com a typecoluna da themetabela: criei um tema e, de alguma forma, o typevalor foi definido como 1(em vez do padrão 0). Todas as minhas alterações LESS / JS funcionaram, mas o Magento não leu nenhum arquivo de layout do meu tema até que eu alterasse o typevalor para 0. Mais sobre isso aqui: nahuelsanchez.com/…
Erik Hansen