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.