Magento2の管理テーマを作成する方法


回答:


12

プロセスは、フロントエンドのテーマを作成するのと非常に似ています。

1.で theme.xmlを作成します

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.テーマを登録

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

3.テーマを有効にします。

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

app/code/Magento/Theme/etc/di.xml、以下のコードブロックを見つけることができます。このコードブロックをモジュールに追加し、adminhtmlを管理パッケージとテーマ名に変更します。

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

これで、管理テーマの何かを上書きして、機能するかどうかを確認できます。


thx、非常に便利です!
LucScu 2016年

2
手順3はここで改善されましたmagento.stackexchange.com/a/120960/23344
LucScu

1
setup:static-content:deployの後、新しいadminhtmlテーマには何も作成されませんが、何が欠けていますか?composer.jsonでいくつかの設定を試しますが、それでも静的コンテンツの下には何も作成しません。なにか提案を?
AleGrinGo 2016年

2
私のカスタム管理テーマには、実行後に生成される静的ファイルがありませんsetup:static-content:deploy
Vasilii Burlacu

私も!どのように解決しますか?
LucScu 2016

2

Magento 2ではテーマシステムが少し変更されていますが、類似点があります。
まず、でテーマフォルダを作成する必要がありますapp/design/frontend。フォルダー構造はモジュール構造に似ています。ベンダー名(Magento 1ではパッケージと呼ばれていました)とテーマフォルダーが必要です。

したがって、を作成しますapp/design/frontend/Vendor/theme
次に、テーマを宣言する必要があります。次の内容の
ファイルtheme.xmlをテーマフォルダ内に作成する必要があります。

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

次に、mediaフォルダー内のテーマ内にテーマのプレビュー画像を作成し(これも作成します)、プレビュー画像を呼び出します(preview.jpg上記のXMLで宣言されているとおり)。

これでテーマが設定されました。
親テーマから何かを変更したい場合は、変更するファイル(レイアウト、テンプレート)を特定のモジュールからテーマにコピーし、魔法をかけるだけです。

たとえば、製品ビューページの外観を変更したい場合は、ファイルapp/code/Magento/Catalog/view/frontend/layout/catalog_product_view.xmlをにコピーしapp/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xmlて必要なものを変更します。

テーマの作成について詳しくは、こちらをご覧ください
また、ガイドラインとして使用できるサンプルテーマも見つけました
また、公式のサンプルデータをインストールするとluma、フォルダー構造を確認できる場所というテーマが表示されます。


答えてくれてありがとう!しかし、私は私の悪い、申し訳ありませんを翻訳する必要があると思います。
Mathieu

フロントエンドではなく、バックエンドのテーマ(管理テーマ)を上書きしたい。
Mathieu

それは問題ありません。手順は同じですが、フォルダ構造でfrontend使用する代わりにadminhtml。原理は同じです。
マリウス

わかりました。しかし、管理者向けの新しいテーマを宣言する方法がわかりません。: "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

新しく作成された管理テーマの静的ファイルの生成に問題がある場合。magentoがsetup:static-content:deployでバックエンドテーマのファイルを生成するためには、 app/design/adminhtml/<yourpackage>/<yourtheme>/web/ フォルダーにファイルが含まれている必要があります。どんなダミーファイルでもその仕事をするでしょう。


空のmain.cssをWebフォルダーに作成しましたが、静的ファイルは作成されません
Scott

@スコットマリウスが彼の答えで提案したすべての必要なステップも実行しましたか?そして、あなたの場合、main.cssへの相対パスはどのように正確に見えますか?
drevidchuck

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.