2

私のテーマでは、すでに(local.xmlで)使用しています:

<reference name="top.links">
    <action method="setTemplate"><template>page/html/header/links.phtml</template></action>
</reference>

テンプレートを変更したいモジュールを作成しているので、テーマを変更せずにモジュールをインストールできます。したがって、モジュールxmlファイルからのほぼ同じコード:

<reference name="top.links">
    <action method="setTemplate"><template>sociallogin/header/links.phtml</template></action>
</reference>

Magentoは常にlocal.xmlの最初のものを選択しますこれをオーバーライドするにはどうすればよいですか?

4

2 に答える 2

5

すべきではありません(ただし、この投稿の最後にいくつかの考えられるアイデアを示します)。Magentoはlocal.xml、インストール可能なモジュールファイルのコードよりも「優先」するように設計されています。基本的な考え方はlocal.xml、ストアの所有者がモジュールファイルの更新を上書きするレイアウトの更新を追加する場所です。これがTheSystemWorks™の仕組みであり、それを変更すると、解決するよりも多くの混乱が生じます。

そうは言っても、コードを別のレイアウトハンドルに配置すると、システム内で作業できる可能性があります。ハンドルは、レイアウトの更新を囲むノードです

<default>
    ...   
</default>

<catalog_category_view>
</catalog_category_view>

<customer_logged_out>
</customer_logged_out>

etc...

Magentoのレイアウトシステムの仕組みは次のとおりです。

  • タグ内のすべての更新は、defaultモジュールファイルから実行され、次に。から実行されますlocal.xml
  • 次に、からのすべての更新catalog_category_viewがモジュールファイルから実行され、次にから実行されますlocal.xml
  • 次に、からのすべての更新customer_logged_outがモジュールファイルから実行され、次にから実行されますlocal.xml

つまり、ハンドルの順序/特異性があります。Commerce Bug Demoストアの[レイアウト]タブをチェックアウトして([デバッグ]をクリックした後)、ページのハンドル順序を確認します。(免責事項:Commerce Bugは私が作成して販売した製品です)

したがって、local.xmlファイルが更新を適用し、default実際にこれを再調整できない場合は、後で提供されるハンドルにモジュールの更新を適用できます。

幸運を。

于 2012-12-09T19:21:54.260 に答える
2

local.xmlレイアウトファイルは、他のすべてのxmlファイルよりも優先されます(/app/etc/local.xmlファイルを除きますが、レイアウトに使用しないでください)。

local.xmlファイルから宣言を削除する必要があります。

于 2012-12-09T19:17:29.260 に答える