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.

user1506075
fonte
thx, muito útil!
LucScu
2
passo 3 melhorado aqui magento.stackexchange.com/a/120960/23344
LucScu 15/16
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.

Marius
fonte
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.

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