Ajout de mises en page personnalisées pour CMS et catégorie d'utilisation avec des problèmes de module personnalisé

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

Question

J'ai une catégorie dans mon magasin qui nécessite une mise en page totalement différent aux dispositions standard Magento. J'ai donc créé une nouvelle copie du 1column.phtml et renommé et fait un petit changement de test.

Maintenant, le problème est que la mise en page personnalisée n'apparaît pas. J'ai créé un module (qui fonctionne comme on le voit dans l'Admin> Config> Présentation avancée).

Mes fichiers et le contenu sont comme suit:

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>

Je ne vois pas tout ce que j'ai foiré, il est en cours de lecture en tant que module, mais la mise en page personnalisée n'est pas montré jusqu'à: (

Était-ce utile?

La solution

Pour faire apparaître dans la mise en page déroulante, vous devez créer un module personnalisé (vous pouvez également ajouter quelque chose dans un fichier de base, mais s'il vous plaît ne pas le faire). Appelons l'extension Easylife_Layout. Pour cela, vous devez créer les fichiers suivants: app/etc/modules/Easylife_Layout.xml - le fichier de déclaration

<?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 - le fichier de configuration

<?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 - le fichier de mise en page

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

Le dernier est nécessaire si vous voulez être en mesure de référencer votre mise en page personnalisée dans les fichiers de mise en page. Quelque chose comme:

<update hande="lookbook" />

Vider le cache et ... c'est tout. Le TME savoir si cela fonctionne pour vous.

Autres conseils

Il y a deux possibilités:

  1. Vous ajoutez une mise en page personnalisée à votre catégorie et procédez comme suit:

    <layout>
        <reference name="root">
            <action method="setTemplate"><template>page/1column-lookbook.phtml</template></action>
        </reference>
    </layout>
    
  2. Vous mettre en œuvre comme une mise en page et l'ajouter à la config.xml dans global/page/layouts/ mais je ne sais pas, comment faire exactement.

Si vous avez seulement besoin une fois, vous pouvez rester avec la première solution. Mais fais attention. Il y a <action method="setIsHandle"><applied>1</applied></action> dans le page.xml ce paramètre empêche parfois le changement du modèle.

Pour faire la première solution: Sélectionnez votre catégorie, a à Custom Design et tout mettre à l'intérieur du nœud <layout /> dans la zone de texte de Custom Layout Update, par exemple:.

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top