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


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에서 패키지라고 함)과 테마 폴더가 있어야합니다.

그래서 창조하십시오 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.xmlapp/design/frontend/Vendor/theme/Magento_Catalog/layout/catalog_product_view.xml변경 하여 파일 을 복사하고 필요한 것을 변경하려는 경우.

테마 만들기에 대한 자세한 내용은 여기를 참조하십시오 .
또한 지침으로 사용할 수있는 샘플 테마를 찾았습니다 .
공식 샘플 데이터를 설치할 수도 luma있으며 폴더 구조를 볼 수있는 곳 이라는 테마가 나타납니다 .


답변 주셔서 감사합니다! 그러나 나는 나의 나쁜 것을 번역해야한다고 생각합니다. 죄송합니다.
Mathieu

프런트 엔드가 아닌 백엔드 테마 (관리자 테마)를 재정의하고 싶습니다.
Mathieu

문제 없습니다. 단계는 동일하지만 폴더 구조에서 대신 frontend사용 adminhtml됩니다. 원칙은 동일합니다.
Marius

알았어 고마워. 그러나 관리자를 위해 새로운 테마를 선언하는 방법을 이해하지 못합니다. "app / code / Magento / Backend / etc / config.xml"이 있습니까?
Mathieu

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

2

누군가 새로 만든 관리자 테마에 대한 정적 파일을 생성하는 데 문제가있는 경우 magento가 setup : static-content : deploy에서 백엔드 테마 용 파일을 생성하려면 app/design/adminhtml/<yourpackage>/<yourtheme>/web/ 폴더에 파일이 있어야합니다. 모든 더미 파일이 작업을 수행합니다.


웹 폴더에 빈 main.css를 만들었는데 정적 파일이 생성되지 않습니다.
Scott

@Scott Marius가 그의 답변에서 제안한 모든 필수 단계를 수행 했습니까? 그리고 당신의 경우 main.css에 대한 상대 경로는 어떻게 생겼습니까?
drevidchuck

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.