Как создать админку для 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>

Теперь вы можете переписать что-то в своей теме администратора, чтобы посмотреть, работает ли она.

user1506075
источник
спасибо очень полезно!
LucScu
2
шаг 3 улучшен здесь magento.stackexchange.com/a/120960/23344
LucScu
1
после установки: 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где вы можете увидеть структуру папок.

Мариус
источник
Спасибо за ответ! Но я думаю, мне нужно перевести мой плохой, извините.
Матье
Я хочу overiding backend theme (admin theme), а не внешний интерфейс.
Матье
Это не проблема. Шаги такие же, но вместо frontendиспользования adminhtmlв структуре папок. Принцип тот же.
Мариус
Хорошо, спасибо. Но я не понимаю, как объявить новую тему для админа. Есть ли: "app / code / Magento / Backend / etc / config.xml"?
Матье
<stores> <admin> <design> <package> <name> default </ name> </ package> <theme> <default> backend </ default> </ theme> </ design> </ admin> </ stores >
Матье
2

На случай, если у кого-то возникнут проблемы с генерацией статических файлов для вновь созданной темы администратора. Для того, чтобы magento генерировал файлы для внутренней темы при установке: static-content: deploy, app/design/adminhtml/<yourpackage>/<yourtheme>/web/ папка должна содержать файлы. Любой фиктивный файл сделает эту работу.

drevidchuck
источник
Я создал пустой файл main.css в веб-папке, но статические файлы все еще не создаются
Скотт,
@ Скотт Вы также сделали все необходимые шаги, которые Мариус предложил в своем ответе? А как именно относительный путь к main.css выглядит в вашем случае?
drevidchuck