mage_pageモジュールにページレイアウトを追加するにはどうすればよいですか?
-
16-10-2019 - |
質問
Magentoをアップグレードした後、そのコアを発見しました Mage_Page
's config.xml
手動で編集されていたので、コアを上書きしない方法でXMLを変更しようとしています。
コアXMLの例は次のとおりです。
<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>
別のレイアウトを追加したいと思っています one_column
また empty
. 。上書き config.xml
と app/code/local/Mage/Page/etc/config.xml
うまくいかなかったようです、コアに触れずにどうやってそれをするべきですか?
解決
mage_pageに依存してモジュールを作成し、独自の構成に新しいレイアウトを追加します。
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/my/leaout/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>
アプリ/デザイン/フロントエンド/ベース/デフォルト/レイアウト/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>
他のヒント
App/etc/local.xmlに必要なものを追加し、グローバル/ページ/レイアウトノードを作成して、必要なものを追加するだけです。これは最もエレガントなソリューションではありませんが、レイアウトテンプレートを追加する目的で専用モジュールを作成したくない場合は正常に機能します。このレイアウト構成をより多くのショップに配布する場合は、ローカル/コミュニティモジュールを実行してください。
所属していません magento.stackexchange