カスタムモジュールのトラブルでCMSおよびカテゴリを使用するためのカスタムレイアウトを追加する


14

ストアには、Magentoの標準レイアウトとはまったく異なるレイアウトを必要とするカテゴリがあります。そこで、1column.phtmlの新しいコピーを作成して名前を変更し、テストのために1つの小さな変更を加えました。

問題は、カスタムレイアウトが表示されないことです。モジュールを作成しました([管理]> [構成]> [高度な概要]に表示されているとおりに機能しています)。

私のファイルと内容は次のとおりです。

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" />

キャッシュをクリアして...それだけです。それはあなたのために働くかどうかを知っています。


この後、ログインとログアウトが
うまくいき

6

次の2つの可能性があります。

  1. カテゴリにカスタムレイアウトを追加して、これを行います。

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
  2. ページレイアウトとして実装し、config.xmlinに追加global/page/layouts/しますが、正確に行う方法はわかりません。

一度だけ必要な場合は、最初のソリューションを使用できます。しかし、注意してください。ある<action method="setIsHandle"><applied>1</applied></action>中でpage.xml時々 、この設定は、テンプレートの変更を防ぐことができます。

最初の解決策を実行するには:カテゴリを選択しCustom Design<layout />ノード内のすべてをCustom Layout Updatetextareaに入れます。例:

<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>

最初のレイアウト参照をどこに貼り付ける必要がありますか?私は別のオプションを追加するために類似したものが必要と想定ので、私は<catalog_category_view>を使用して、デフォルトとしてすべてのカテゴリページのためにそこに参照を持って、layout.xmlで非常に類似したコードを試してみましたが、それを置くためにどのようなレベルは思いもしませんでした
クリス・モリス

答えを編集
ファビアンBlechschmidt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.