local.xml 이외의 로컬 테마 레이아웃 XML 파일이 있습니까?


14

다음 파일을 만들고 편집하여 테마를 작성했습니다.

frontend/mypackage/default/layout/local.xml

상점보기 "site1"이 있고 "mypackage"의 기본 local.xml에서 예외를 만들고자하므로이 파일을 작성했습니다.

frontend/mypackage/site1/layout/local.xml

그러나이 파일을 생성하자마자 Magento는 기본 local.xml 변경 사항을 건너 뜁니다.

Magento에게 기본값에서 local.xml을 사용하도록 지시하고 site1의 local.xml에 변경 사항을 추가하려면 어떻게합니까?


절대 안돼. 죄송합니다. 그런데 좋은 질문입니다.
user487772

이 똑같은 시나리오에 직면하고 있습니다. 기본 테마에서 local.xml을 확장하지 않고 완전히 대체하지는 않았습니다. 선택한 하위 테마로 완전히 대체하는 것은 너무 나쁩니다.
Axel

default.xml과 같은 것이 있습니까? 아니면 xml 파일을 가로 지르는 Magento 핵심 코드를 해킹하여 default.xml도 확인할 수 있습니까?
Gerard Nijboer

답변:


7

Magento 1.9부터 다음 etc/theme.xml과 같이 사용자 정의 레이아웃 업데이트를 추가 할 수 있습니다 .

<theme>
    <layout>
        <updates>
            <my_theme>
                <file>my_theme.xml</file>
            </my_theme>
        </updates>
    </layout>
</theme>

를 사용하는 대신 이와 같은 테마별 레이아웃을 정의 local.xml하면 자식 테마에 다른 업데이트를 쉽게 추가 할 수 있습니다.

불행히도 theme.xml에서도 동일한 문제가 발생하는데 부모 테마의 문제가 아닌 실제 테마의 문제 만 사용됩니다. 그러나 중복이 훨씬 적습니다.

theme.xml자식 테마의 예 :

<theme>
    <layout>
        <updates>
            <my_theme>
                <file>my_theme.xml</file>
            </my_theme>
            <my_child_theme>
                <file>my_child_theme.xml</file>
            </my_child_theme>
        </updates>
    </layout>
</theme>

출처 및 추가 정보 : http://alanstorm.com/magento_infinite_fallback_theme_xml


5

Magento는 다른 local.xml 파일의 local.xml 변경 사항을 병합하지 않습니다. Magento 테마 폴 백이 작동하는 방식은 현재 테마 / 패키지에있는 파일이 선호되고 비슷한 이름의 다른 테마 / 패키지 파일보다 사용되는 것입니다.

이런 방식으로 병합 된 재정의를 만들 수 없습니다. Magento 2에서는 가능하지만 Magento 1.x에서는 불가능합니다.

불행히도 기본값에서 로컬 테마로 복사하고 수정해야합니다.

행운을 빌어 요.


2
+1. 이것은 확실히 프로그래밍 방식으로 달성 할 수는 있지만 노력을 기울일 가치는 없습니다.
user487772

3

Phil은 절대적으로 맞지만 이론적으로 해결 방법이 있습니다 (그렇지는 않지만).

레이아웃 업데이트를 소개 할 사용자 지정 모듈을 만들 수 있습니다. 그런 다음 모듈에서 상점보기가 필요한 것이 아닌지 확인하고이 레이아웃 업데이트를 제거 할 수 있습니다.

이 접근 방식의 나쁜 점은 상점보기를 하드 코딩한다는 것입니다. 그리고 전반적으로 이것은 예쁘지 않습니다.

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