사용자 정의 모듈 문제로 CMS 및 카테고리 사용을위한 사용자 정의 레이아웃 추가


14

매장에 표준 마 젠토 레이아웃과 완전히 다른 레이아웃이 필요한 카테고리가 있습니다. 그래서 1column.phtml의 새 복사본을 만들어 이름을 바꾸고 테스트를 위해 약간의 변경을했습니다.

이제 문제는 사용자 정의 레이아웃이 표시되지 않는다는 것입니다. 모듈을 만들었습니다 (관리자> 구성> 고급 개요에 표시된대로 작동 함).

내 파일과 내용은 다음과 같습니다.

app / etc / modules / Test_Page.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <active>true</active>
            <codePool>community</codePool>
            <version>0.1.0</version>
            <depends>
                <Mage_Page />
            </depends>
        </Test_Page>
    </modules>
</config>

app / code / local / Test / Page / etc / config.xml

    <?xml version="1.0"?>
<config>
    <modules>
        <Test_Page>
            <version>0.1.0</version>
        </Test_Page>
    </modules>
    <global>
        <page>
            <layouts>
                <homepage module="page" translate="label">
                    <label>Homepage</label>
                    <template>page/home.phtml</template>
                    <layout_handle>homepage</layout_handle>
                </homepage>

                <!-- add more layouts here -->
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <Test_Page>
                    <file>test_page.xml</file>
                </Test_Page>
            </updates>
        </layout>
    </frontend>
</config>

app / design / frontend / test / default / layout / test_page.xml

    <?xml version="1.0"?> 
<layout>
    <homepage translate="label">
        <label>Home Page</label>
        <reference name="root">
            <action method="setTemplate"><template>page/home.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </homepage> 
</layout>

내가 망쳐 놓은 것을 볼 수 없습니다. 모듈로 읽히고 있지만 사용자 정의 레이아웃이 표시되지 않습니다 :(

답변:


21

레이아웃 드롭 다운에 표시하려면 사용자 지정 모듈을 만들어야합니다 (코어 파일에 무언가를 추가 할 수도 있지만 그렇게하지 마십시오). 확장명을 Easylife_Layout으로 지정합니다. 이를 위해 다음 파일을 작성해야합니다 app/etc/modules/Easylife_Layout.xml.-선언 파일

<?xml version="1.0"?>
<config>
    <modules>
        <Easylife_Layout>
            <active>true</active>
            <codePool>local</codePool>
            <depends>
                <Mage_Page />
            </depends>
        </Easylife_Layout>
    </modules>
</config>

app/code/local/Easylife/Layout/etc/config.xml -구성 파일

<?xml version="1.0"?> 
<config>
    <modules>
        <Easylife_Layout>
            <version>0.0.1</version>
        </Easylife_Layout>
    </modules>
    <global>
        <page>
            <layouts> 
                <lookbook module="page" translate="label">
                    <label>Lookbook</label>
                    <template>page/1column-lookbook.phtml</template>
                    <layout_handle>lookbook</layout_handle>
                </lookbook> 
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <easylife_layout>
                    <file>easylife_layout.xml</file>
                </easylife_layout>
            </updates>
        </layout>
    </frontend>
</config>

app/design/frontend/{interface}/{theme}/layout/easylife_layout.xml -레이아웃 파일

<?xml version="1.0"?> 
<layout>
    <lookbook translate="label">
        <label>Lookbook</label>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </lookbook> 
</layout>

마지막 파일은 레이아웃 파일에서 사용자 정의 레이아웃을 참조하려는 경우에 필요합니다. 다음과 같은 것 :

<update hande="lookbook" />

캐시를 지우면 그게 다입니다. Le tme는 그것이 당신을 위해 작동하는지 알고 있습니다.


로그인 및 로그 아웃이 후 나를 위해 속임수
cyptus

6

두 가지 가능성이 있습니다.

  1. 카테고리에 사용자 정의 레이아웃을 추가하고 다음을 수행하십시오.

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
  2. 당신은 그것을 페이지 레이아웃으로 구현하고 그것을 config.xml안에 추가 global/page/layouts/하지만 정확히 어떻게하는지 모르겠습니다.

한 번만 필요한 경우 첫 번째 솔루션을 유지할 수 있습니다. 그러나 조심하십시오. 있다 <action method="setIsHandle"><applied>1</applied></action>page.xml때때로이 설정 템플릿의 변화를 방지 할 수 있습니다.

첫 번째 해결 방법 : 범주를 선택 Custom Design하고 <layout />노드 내부의 모든 것을 Custom Layout Update텍스트 영역에 배치하십시오. 예 :

<reference name="root">
    <action method="setBackgroundGraphic">
        <background>two-pieces</background>
    </action>
    <action method="setTemplate">
    <template>page/2columns-right-highStep.phtml</template>
    </action>
    <action method="setIsHandle">
        <applied>1</applied>
    </action>
</reference>

첫 번째 레이아웃 참조를 어디에 붙여야합니까? 나는 layout.xml 매우 유사한 코드를 시도했지만를 배치 할 수준을, 내가 사용하는 기본 모든 카테고리 페이지가 참조가 몰랐다 <catalog_category_view> 나는 다른 옵션을 추가 할 수 비슷한 필요 내가 가정 있도록
크리스 모리스

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