Hinzufügen von benutzerdefinierten Layouts für CMS und Kategorie verwenden mit benutzerdefiniertem Modulstörungen

magento.stackexchange https://magento.stackexchange.com/questions/1140

Frage

Ich habe eine Kategorie in meinem Geschäft, die ein völlig anderes Layout für die Standard -Magento -Layouts erfordert. Also habe ich eine neue Kopie des 1Column.phtml erstellt und umbenannt und eine kleine Änderung vorgenommen, um sie zu testen.

Das Problem ist nun, dass das benutzerdefinierte Layout nicht angezeigt wird. Ich habe ein Modul erstellt (das funktioniert, wie es im Administrator> Konfiguration> erweiterte Übersicht angezeigt wird).

Meine Dateien und Inhalte sind wie folgt:

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

Ich kann nichts sehen, was ich vermasselt habe, es wird als Modul gelesen, aber das benutzerdefinierte Layout wird nicht ergeben :(

War es hilfreich?

Lösung

Um es in der Dropdown -Abteilung für Layout anzuzeigen, müssen Sie ein benutzerdefiniertes Modul erstellen (Sie können auch etwas in einer Kerndatei hinzufügen, aber bitte nicht tun). Nennen wir die Erweiterung EasyLife_Layout. Dazu müssen Sie die folgenden Dateien erstellen:app/etc/modules/Easylife_Layout.xml - Die Deklarationsdatei

<?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 - Die Konfigurationsdatei

<?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 - Die Layoutdatei

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

Der letzte ist erforderlich, falls Sie in der Lage sein möchten, Ihr benutzerdefiniertes Layout in Layout -Dateien zu verweisen. Etwas wie:

<update hande="lookbook" />

Löschen Sie den Cache und ... das war's. Le tme wissen, ob es für Sie funktioniert.

Andere Tipps

Es gibt zwei Möglichkeiten:

  1. Sie fügen Ihrer Kategorie ein benutzerdefiniertes Layout hinzu und tun Folgendes:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
    
  2. Sie implementieren es als Seitenlayout und fügen es dem hinzu config.xml in global/page/layouts/ Aber ich weiß nicht, wie es genau geht.

Wenn Sie es nur einmal benötigen, können Sie bei der ersten Lösung bleiben. Aber sei vorsichtig. Es gibt <action method="setIsHandle"><applied>1</applied></action> in dem page.xml Manchmal verhindert diese Einstellung die Änderung der Vorlage.

Um die erste Lösung durchzuführen: Wählen Sie Ihre Kategorie aus Custom Design und stecken Sie alles in die <layout /> Knoten in die Custom Layout Update textarea, zB:

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top