Como criar um tema de administrador para o Magento2


Respostas:


12

O processo é bastante semelhante à criação de um tema para o frontend.

1. Crie theme.xml em

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 o tema em

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

3. Habilite o tema.

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

em app/code/Magento/Theme/etc/di.xml, você pode encontrar o bloco de código abaixo. adicione esse bloco de código ao seu módulo e altere adminhtml para o pacote de administração e o nome do 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>

Agora você pode substituir algo no seu tema de administrador para ver se funciona.


thx, muito útil!
LucScu


11
após a instalação: static-content: deploy nada é criado para o meu novo tema do adminhtml, o que estou perdendo? Eu tento várias configurações no composer.json, mas ainda não cria nada sob conteúdo estático. Alguma sugestão?
AleGrinGo

2
O meu tema administrador costume não tem arquivos estáticos gerados após a execuçãosetup:static-content:deploy
Vasilii Burlacu

eu também! como você resolve isso?
LucScu

2

O sistema de temas mudou um pouco no Magento 2, mas há semelhanças.
Primeiro, você precisa criar uma pasta de temas no app/design/frontend. A estrutura da pasta é semelhante à estrutura dos módulos. Você precisa ter um nome de fornecedor (no Magento 1 foi chamado pacote) e uma pasta de temas.

Então crie app/design/frontend/Vendor/theme.
Então você tem que declarar o seu tema.
você precisa criar dentro da pasta do tema um arquivo theme.xmlcom o seguinte conteúdo:

<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>

em seguida, crie uma imagem de visualização do seu tema dentro do tema na mediapasta (crie isso também) e chame a imagem de visualização preview.jpg(conforme declarado no XML acima).

Agora seu tema está definido.
Se você deseja alterar algo do tema principal, tudo o que você precisa fazer é copiar o arquivo que deseja alterar (layout, modelo) para o tema do módulo específico e fazer sua mágica.

Por exemplo, se você quiser mudar a maneira que o ponto de vista do produto página se parece copiar o arquivo app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xmlpara app/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xmle mudar o que você precisa.

Mais detalhes sobre a criação de um tema podem ser encontrados aqui .
Eu também encontrei um tema de exemplo que você pode usar como orientação .
Você também pode instalar os dados de amostra oficiais e obterá um tema chamado lumaonde você pode ver a estrutura da pasta.


Obrigado pela resposta! Mas acho que preciso traduzir meu mal, desculpe.
Mathieu

Quero substituir o tema de back-end (tema de administrador), não o front-end.
Mathieu

Não tem problema. As etapas são as mesmas, mas em vez de serem frontendusadas adminhtmlna estrutura de pastas. O princípio é o mesmo.
Marius

Ok obrigado. Mas, eu não entendo como declarar o novo tema para administrador. Existe: "app / code / Magento / Backend / etc / config.xml"?
Mathieu

<stores> <admin> <design> <package> <name> padrão </name> </package> <theme> <default> backend </default> </theme> </design> </admin> </ stores >
Mathieu

2

Caso alguém tenha problemas com a geração de arquivos estáticos para o tema de administrador recém-criado. Para que o magento gere arquivos para o tema de back-end em setup: static-content: deploy, a app/design/adminhtml/<yourpackage>/<yourtheme>/web/ pasta deve conter arquivos. Qualquer arquivo fictício faria o trabalho.


Eu criei um main.css em branco em uma pasta web e ainda se há arquivos estáticos criado
Scott

@ Scott Você também executou todas as etapas necessárias que Marius sugeriu em sua resposta? E como é exatamente o caminho relativo do main.css na sua ocasião?
precisa saber é o seguinte

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.