모든 테마에 모듈 레이아웃을 표시하는 방법


13

상황은 다음과 같습니다. 기본 테마를 사용하여 테스트하고 작동하는 여러 가지 자체 제작 모듈이 있습니다. 그런 다음 새로운 테마를 구입하여 설치했습니다. 새 테마로 전환되었으며 모듈이 표시되지 않습니다. 여러 번의 시도 / 실패 테스트 후 해당 레이아웃 및 템플릿 파일을 최근 설치된 테마의 해당 폴더로 복사해야한다는 것을 알았습니다.

그래서 내 질문은 : 모듈 설정 후 설치된 모든 테마로 모든 모듈을 작동 시키려면 어떻게해야합니까?


1
레이아웃 파일을 design / frontend / base / default / ...에 넣으면 테마가 무엇이든 표시됩니다
Sander Mangel

답변:


17

모든 것을 base/default길에 넣으십시오 .

예:

app/design/frontend/base/default

skin/frontend/base/default


아야! 그것에 대해 생각하지 않았다, 당신이 맞아, 사무실에 도착하자마자 테스트합니다.
야로슬라프

+1-이 커뮤니티를 따르지 않는 "커뮤니티"로 레이블이 지정된 모듈이 너무 많습니다.
pspahn

기본 템플릿은 Magento 1.4에서 도입되었습니다. 이 문제를 정확히 해결하십시오. 이전 버전에서는 템플릿 파일을 복사하는 것이 기본 패키지를 사용하지 않는 경우에 수행하는 방법이었습니다.
Kristof at Fooman

5

어려운 사실은, 그들이 될 것이라고 실제로 보장 할 수는 없다는 것입니다. 파일을 파일에 넣으면 base/default(또는 default/default기본 파일을 모듈 설치로 덮어 쓰지 않기 때문에 코어 템플릿을 덮어 쓰는 경우 엔터프라이즈 버전의 복제본을 유지해야 함) 파일이 폴 백이 될 수 있지만 테마 파일은 항상 최우선 순위입니다.

대부분의 모듈은 설치 안내서와 함께 제공되며, 여기에는 사용자 정의 파일이있는 경우 사용자 테마에 템플리트 파일을 복사하는 것에 대한 언급이 포함됩니다. 그것은 당신이 할 수있는 최선의 것입니다.


4

우리가 몇 번 사용한 것은 [Fabrizio Branca] [1]의 [Custom Fallback] [2] modlue입니다. 사용자 정의 테마 대체 계층 구조를 지정하는 데 매우 유용한 모듈입니다. 할 수있는 한 가지는 다음을 지정하는 것입니다.

  1. custom/theme

  2. base/default

  3. default/default

그런 다음 default/default테마에 자체 템플릿을 넣는 모든 모듈 . base/default패키지 를 재정의하려고하면 작동하지 않습니다 .

사용자 지정 대체 계층 구조에서 여러 패키지 / 테마를 지정할 수 있습니다.

[1] : http://www.fabrizio-branca.de/ [2] : http://www.fabrizio-branca.de/custom-design-fallbacks-in-magento.html


2

base/default경로를 따라 어딘가에 재정의되지 않는 한 템플릿 및 레이아웃 파일 이로드됩니다. 그러나 사용자 정의 모듈이 일종의 위젯 인 경우 필요할 때마다 에코되는지 확인해야합니다. 예를 들어을 통해 제품 페이지에 표시된 내용을 변경하는 getChildHtml경우 해당 통화도 해당 테마에 있어야합니다. 그러나 모듈 템플릿 자체가 페이지이고에서로드되지 않은 base/default경우 무언가가 레이아웃 구성을 차단하므로 무엇을 찾아야합니다.


에 대한 의견이 매우 흥미로워 서 getChild실제로 이런 종류의 전화가 있습니다.
야로슬라프

1

이에 대한 간단한 대답은 없습니다. 가지고있는 모듈에 따라 다릅니다. 예를 들어 일부 모듈 회사에서는 핵심 파일을 재정의합니다. 따라서, 먼저 사용할 파일 내용을 확인해야 app/etc/modules하고 app/code/local/Mage, app/code/community/Mage폴더. 아시다시피, 첫 번째 폴더는 xml 파일과 관련된 모듈을 비활성화하거나 활성화 할 수있는 모듈 초기화 폴더입니다. 마지막 두 개의 폴더 (사용 가능한 경우)는 핵심 코드 재정의 폴더입니다.

그런 다음 사용 가능한 etc/modules디렉토리 중 하나 인 xml 파일 중 하나를여십시오 . 다음과 같은 내용이 표시됩니다.

<?xml version="1.0"?>
<config>
<modules>
    <Company_Namespace>
        <active>true</active>
        <codePool>local</codePool>
    </Company_Namespace>
</modules>

여기서 중요한 부분이있다 CompanyNamespace. app/code/local또는 app/code/community폴더 를 방문하면 이라는 이름 Company의 하위 폴더가라는 폴더가 표시 Namespace됩니다.

조회하면 Namespace라는 하위 폴더가 표시됩니다 /etc. 이 폴더는 모듈 관련 설정 파일을 유지합니다 config.xml. 이 파일에는이 모듈과 관련된 파일을 참조 할 수있는 모듈 관련 구성 행이 있습니다.

첫 번째 줄에서 말했듯이 관리하기가 어렵습니다.


나는 당신이 질문의 요점을 놓쳤다 고 생각합니다. 그는 레이아웃 업데이트에 대해 묻고있었습니다. 모범 사례는 기본 / 기본 / 모듈 경로를 사용하는 것입니다.
Mark Shust
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.