Question

J'ai découvert après la mise à niveau Magento que la Mage_Page de config.xml de base a été modifié manuellement, et maintenant je suis à la recherche de changer le code XML d'une manière qui ne noyau Ecraser.

Voici un exemple de XML de base:

<config>
    <modules>
        <Mage_Page>
            <version>1.6.0.0</version>
        </Mage_Page>
    </modules>
    <global>
        <models>
            <page>
                <class>Mage_Page_Model</class>
            </page>
        </models>
        <blocks>
            <page>
                <class>Mage_Page_Block</class>
            </page>
        </blocks>
        <page>
            <layouts>
                <empty module="page" translate="label">
                    <label>Empty</label>
                    <template>page/empty.phtml</template>
                    <layout_handle>page_empty</layout_handle>
                </empty>
                <one_column module="page" translate="label">
                    <label>1 column</label>
                    <template>page/1column.phtml</template>
                    <layout_handle>page_one_column</layout_handle>
                    <is_default>1</is_default>

Je cherche à ajouter une autre mise en page, comme one_column ou empty. Écrasement config.xml avec app/code/local/Mage/Page/etc/config.xml ne semble pas fonctionner, comment dois-je aller à le faire sans noyau toucher?

Était-ce utile?

La solution

Créer un module avec une dépendance sur Mage_Page et ajouter la nouvelle mise en page dans votre config:

  

app / etc / modules / My_Layout.xml

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

app / code / local / Mon / mise en page / etc / config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <My_Layout>
            <version>1.0.0</version>
        </My_Layout>
    </modules>
    <global>
        <page>
            <layouts>
                <my_layout module="page" translate="label">
                    <label>My Layout</label>
                    <template>page/mylayout.phtml</template>
                    <layout_handle>my_layout</layout_handle>
                </my_layout>
            </layouts>
        </page>
    </global>
    <frontend>
        <layout>
            <updates>
                <my_layout module="My_Layout">
                    <file>my_layout.xml</file>
                </my_layout>
            </updates>
        </layout>
    </frontend>
</config>
  

app / design / frontend / base / default / layout / my_layout.xml

<?xml version="1.0"?>
<layout version="0.1.0">
    <my_layout translate="label">
        <label>All My Layout Pages</label>
        <reference name="root">
            <action method="setTemplate"><template>page/mylayout.phtml</template></action>
            <!-- Mark root page block that template is applied -->
            <action method="setIsHandle"><applied>1</applied></action>
        </reference>
    </my_layout>
</layout>

Autres conseils

Il y a la possibilité d'ajouter ce que vous devez app / etc / local.xml, il suffit de créer la page globale / / nœud mises en page et ajoutez ce que vous voulez là. Il n'est pas la solution la plus élégante, mais il fonctionne très bien si vous ne voulez pas créer de module dédié dans le but d'ajouter un modèle de mise en page. Si vous prévoyez de distribuer cette configuration de mise en page pour plus de magasins, puis faire un module local / communautaire pour elle.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top