Magento 2 - Tipo de tema 0: físico, 1: virtual, 2: puesta en escena. ¿Cuándo usar?


30

En la themetabla hay un typecampo con 3 valores posibles: físico, virtual y de ensayo.

¿Cuándo usar el tema físico virtual y de puesta en escena?

Cuando extendí el tema luma, mi nuevo tema aparece en la tabla de temas como tipo virtual. Pero parece que este tipo no permite anular algunos archivos, y solo cambiar el tipo de tema de virtual a físico me permite extender, por ejemplo, el Magento_Themepaquete.


Buena pregunta Puede no estar seguro0: 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

Respuestas:


32

Hay 3 tipos diferentes definidos en Magento/Framework/View/Design/ThemeInterface:

  • Tipo fisico
  • Tipo virtual
  • Tipo de estadificación

Temas físicos

Físico se refiere al hecho de que esos temas están definidos por archivos. Por ejemplo, el tema en blanco y luma se definen físicamente enapp/design/frontend/

Temas virtuales

Esto aún no está claro, pero creo que los temas virtuales se refieren a temas que puede crear en el back-end que amplía los temas físicos existentes, pero parece que aún no está completamente implementado.

Puede ver que hay dos pestañas disponibles en la sección de edición solo para temas virtuales que le permiten proporcionar CSS y JS personalizados para un tema virtual.

Creo que un tema virtual sería algo que configuras temporalmente (como el tema de Navidad) por un período corto de tema y que requiere solo unos pocos cambios de diseño en comparación con el tema físico que extiende.

Todavía no hay un botón Agregar tema virtual disponible, pero si ejecuta la siguiente consulta SQL, puede configurar un tema virtual y verá la pestaña CSS y JS al editarlo:

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

Y aquí tienes, dos pestañas adicionales y botones Guardar / Eliminar:

ingrese la descripción de la imagen aquí

Puesta en escena de temas

Creo que los temas de preparación están relacionados con la función de preparación Magento 2.1 EE: http://devdocs.magento.com/guides/v2.1/extension-dev-guide/staging/Staging.html

Supongo que puede tener un tema de preparación al usar una campaña, pero no estoy 100% seguro.


¡Acabas de resolver mi problema aquí Raph! Gracias - Alvin :)
Alvin Nguyen

1
Me encontré con un problema con la typecolumna de la themetabla: creé un tema y de alguna manera el typevalor se configuró en 1(en lugar del valor predeterminado de 0). Todos mis cambios MENOS / JS funcionaron, pero Magento no leería ningún archivo de diseño de mi tema hasta que cambie el typevalor a 0. Más sobre esto aquí: nahuelsanchez.com/…
Erik Hansen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.