Cómo crear un tema de administrador para Magento2

Respuestas:

12

El proceso es bastante similar a crear un tema para frontend.

1. Crear theme.xml en

app/design/adminhtml/<yourpackage>/<yourtheme>/theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Magento 2 backend</title>
    <parent>Magento/backend</parent> // set parent theme
 </theme>

2. Registre el tema en

app/design/adminhtml/<yourpackage>/<yourtheme>/registration.php

3. Habilite el tema.

you can enable frontend theme in admin, but for backend you need to enable the theme through di.xml 

adentro app/code/Magento/Theme/etc/di.xml, puedes encontrar el bloque de código a continuación. agregue este bloque de código a su módulo y cambie adminhtml a su paquete de administración y nombre del tema.

    <type name="Magento\Theme\Model\View\Design">
       <arguments>
          <argument name="themes" xsi:type="array">
            <item name="frontend" xsi:type="string">Magento/luma</item>
            <item name="adminhtml" xsi:type="string">Magento/backend</item>
         </argument>
      </arguments>
    </type>

Ahora puede sobrescribir algo en su tema de administrador para ver si funciona.

user1506075
fuente
gracias, muy útil!
LucScu
2
paso 3 mejorado aquí magento.stackexchange.com/a/120960/23344
LucScu
1
después de la configuración: static-content: deploy nada se crea en mi nuevo tema adminhtml, ¿qué me falta? Intento varias configuraciones en el composer.json pero todavía no creo nada bajo contenido estático. ¿Cualquier sugerencia?
AleGrinGo
2
Mi tema de administrador personalizado no tiene archivos estáticos generados después de ejecutarsesetup:static-content:deploy
Vasilii Burlacu
¡yo también! como lo resuelves
LucScu
2

El sistema de temas ha cambiado un poco en Magento 2, pero hay similitudes.
Primero necesitas crear una carpeta de temas en app/design/frontend. La estructura de la carpeta es similar a la estructura de los módulos. Debe tener un nombre de proveedor (en Magento 1 se llamaba paquete) y una carpeta de temas.

Entonces crea app/design/frontend/Vendor/theme.
Entonces tienes que declarar tu tema.
necesita crear dentro de su carpeta de temas un archivo theme.xmlcon el siguiente contenido:

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Config/etc/theme.xsd">
    <title>Your theme name</title>
    <parent>Magento/blank</parent><!-- or any other parent theme similar to Magento 1.9 -->
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

luego cree una imagen de vista previa de su tema dentro de su tema en la mediacarpeta (cree esto también) y llame a la imagen de vista previa preview.jpg(como se declara en el XML anterior).

Ahora tu tema está listo.
Si desea cambiar algo del tema principal, todo lo que necesita hacer es copiar el archivo que desea cambiar (diseño, plantilla) a su tema desde el módulo específico y hacer su magia.

Por ejemplo, si desea cambiar la forma en que el producto Vista de miradas página como copiar el archivo app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xmla app/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xmly el cambio lo que necesita.

Puede encontrar más detalles sobre cómo crear un tema aquí .
También encontré un tema de muestra que puedes usar como guía .
También puede instalar los datos de muestra oficiales y obtendrá un tema llamado lumadonde puede ver la estructura de la carpeta.

Marius
fuente
Gracias por tu respuesta! Pero creo que necesito traducir mi mal, lo siento.
Mathieu
Quiero anular el tema de fondo (tema de administrador), no el frontend.
Mathieu
Eso no es un problema. Los pasos son los mismos, pero en lugar de frontendusarlos adminhtmlen la estructura de carpetas. El principio es el mismo.
Marius
OK gracias. Pero, no entiendo cómo declarar el nuevo tema para el administrador. ¿Existe: "app / code / Magento / Backend / etc / config.xml"?
Mathieu
<stores> <admin> <design> <package> <name> default </name> </package> <theme> <default> backend </default> </theme> </design> </admin> </ stores >
Mathieu
2

En caso de que alguien tenga problemas para generar archivos estáticos para el tema de administrador recién creado. Para que magento genere archivos para el tema de fondo en la configuración: static-content: deploy, la app/design/adminhtml/<yourpackage>/<yourtheme>/web/ carpeta debe contener archivos. Cualquier archivo ficticio haría el trabajo.

drevidchuck
fuente
Creé un main.css en blanco en una carpeta web y todavía no obtengo archivos estáticos creados
Scott
@Scott ¿También ha realizado todos los pasos necesarios que Marius sugirió en su respuesta? ¿Y cómo se ve exactamente la ruta relativa a main.css en su ocasión?
drevidchuck