如何为Magento2创建管理主题


Answers:


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

2
步骤3在这里进行了
LucScu

1
在setup:static-content:deploy之后,没有为我的新adminhtml主题创建任何内容,我缺少了什么?我在composer.json上尝试了几个配置,但在静态内容下仍然没有创建任何内容。有什么建议吗?
AleGrinGo

2
我的自定义管理主题运行后没有生成静态文件setup:static-content:deploy
Vasilii Burlacu

我也是!您如何解决?
LucScu

2

Magento 2中的主题系统有所变化,但有一些相似之处。
首先,您需要在中创建一个主题文件夹app/design/frontend。文件夹结构类似于模块结构。您必须具有供应商名称(在Magento 1中被称为package)和一个主题文件夹。

因此创建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。原理是一样的。
马里斯(Marius)

好,谢谢。但是,我不明白如何为admin声明新主题。是否存在:“ app / code / Magento / Backend / etc / config.xml”?
Mathieu

<stores> <admin> <design> <package> <name> default </ name> </ package> <theme> <default>后端</ default> </ theme> </ design> </ admin> </ stores >
Mathieu

2

如果有人在为新创建的管理主题生成静态文件时遇到问题。为了使magento在setup:static-content:deploy上生成用于后端主题的文件, app/design/adminhtml/<yourpackage>/<yourtheme>/web/ 文件夹应包含文件。任何虚拟文件都可以完成这项工作。


我在Web文件夹中创建了一个空白的main.css,但仍未创建任何静态文件
Scott

@Scott您还完成了Marius在回答中建议的所有必需步骤吗?以及您遇到的main.css的相对路径到底如何?
drevidchuck '18

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.