Come creare un tema di amministrazione per Magento2


Risposte:


12

Il processo è abbastanza simile alla creazione di un tema per frontend.

1. Crea theme.xml in

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. Registrare il tema in

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

3. Abilita tema.

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

in app/code/Magento/Theme/etc/di.xml, puoi trovare il blocco di codice qui sotto. aggiungi questo blocco di codice al tuo modulo e modifica adminhtml nel pacchetto di amministrazione e nel nome 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>

Ora puoi sovrascrivere qualcosa nel tema dell'amministratore per vedere se funziona.


grazie, molto utile!
LucScu,

2
il passaggio 3 è stato migliorato qui magento.stackexchange.com/a/120960/23344
LucScu,

1
dopo l'installazione: contenuto statico: distribuire nulla viene creato nel mio nuovo tema adminhtml, cosa mi manca? Provo diverse configurazioni su composer.json ma ancora non creo nulla con contenuto statico. Qualche suggerimento?
AleGrinGo

2
Il mio tema di amministrazione personalizzato non ha generato file statici dopo l'esecuzionesetup:static-content:deploy
Vasilii Burlacu il

anch'io! come lo risolvi?
LucScu,

2

Il sistema di temi è leggermente cambiato in Magento 2 ma ci sono somiglianze.
Per prima cosa devi creare una cartella del tema in app/design/frontend. La struttura delle cartelle è simile alla struttura dei moduli. Devi avere un nome fornitore (in Magento 1 era chiamato pacchetto) e una cartella temi.

Quindi crea app/design/frontend/Vendor/theme.
Quindi devi dichiarare il tuo tema.
devi creare nella cartella del tuo tema un file theme.xmlcon il seguente contenuto:

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

quindi crea un'immagine di anteprima del tuo tema all'interno del tuo tema nella mediacartella (crea anche questo) e chiama l'immagine di anteprima preview.jpg(come dichiarato nell'XML sopra).

Ora il tuo tema è impostato.
Se vuoi cambiare qualcosa dal tema principale, tutto ciò che devi fare è copiare il file che vuoi cambiare (layout, modello) sul tuo tema dal modulo specifico e fare la tua magia.

Per esempio, se si vuole cambiare il modo in cui la vista del prodotto sguardi pagina piace copiare il file app/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xmlper app/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xmle cambiare quello che vi serve.

Maggiori dettagli sulla creazione di un tema sono disponibili qui .
Ho anche trovato un tema di esempio che puoi usare come linea guida .
Puoi anche installare i dati di esempio ufficiali e otterrai un tema chiamato lumadove puoi vedere la struttura delle cartelle.


Grazie per la tua risposta! Ma penso di dover tradurre il mio male, scusa.
Mathieu

Voglio un tema backend dominante (tema admin), non frontend.
Mathieu

Non c'è problema. I passaggi sono gli stessi, ma invece di frontendutilizzarli adminhtmlnella struttura delle cartelle. Il principio è lo stesso.
Marius

Ok grazie. Ma non capisco come dichiarare il nuovo tema per l'amministratore. Esiste: "app / code / Magento / Backend / etc / config.xml"?
Mathieu

<stores> <admin> <design> <package> <name> default </name> </package> <theme> <default> backend </default> </theme> </design> </admin> </ store >
Mathieu

2

Nel caso in cui qualcuno abbia problemi con la generazione di file statici per il tema di amministrazione appena creato. Affinché magento generi file per il tema backend durante l'installazione: static-content: deploy, la app/design/adminhtml/<yourpackage>/<yourtheme>/web/ cartella deve contenere file. Qualsiasi file fittizio farebbe il lavoro.


Ho creato un main.css vuoto in una cartella web e non ho ancora creato file statici
Scott

@Scott Hai anche fatto tutti i passi necessari che Marius ha suggerito nella sua risposta? E come appare esattamente il percorso relativo a main.css nella tua occasione?
drevidchuck,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.