具体的な例を挙げないと言うのは難しいですが、ファイルの順序とハンドルの順序の問題に直面しているのではないかと思います。
具体的には、MagentoはXMLファイルをモジュール順にロードしlocal.xml
、最後に追加します。典型的なリストを順番に示します
frontend/base/default/layout/core.xml
frontend/rwd/default/layout/page.xml
frontend/rwd/default/layout/directory.xml
frontend/rwd/default/layout/cms.xml
frontend/rwd/default/layout/customer.xml
frontend/rwd/default/layout/catalog.xml
frontend/rwd/default/layout/catalog_msrp.xml
frontend/rwd/default/layout/catalogsearch.xml
frontend/base/default/layout/payment.xml
frontend/rwd/default/layout/sales.xml
frontend/base/default/layout/sales/billing_agreement.xml
frontend/base/default/layout/sales/recurring_profile.xml
frontend/base/default/layout/cataloginventory.xml
frontend/base/default/layout/shipping.xml
frontend/rwd/default/layout/checkout.xml
frontend/rwd/default/layout/paypal.xml
frontend/base/default/layout/bml.xml
frontend/rwd/default/layout/poll.xml
frontend/rwd/default/layout/review.xml
frontend/rwd/default/layout/tag.xml
frontend/base/default/layout/reports.xml
frontend/base/default/layout/googleanalytics.xml
frontend/rwd/default/layout/wishlist.xml
frontend/base/default/layout/paypaluk.xml
frontend/base/default/layout/giftmessage.xml
frontend/rwd/default/layout/contacts.xml
frontend/base/default/layout/sendfriend.xml
frontend/rwd/default/layout/rss.xml
frontend/base/default/layout/productalert.xml
frontend/rwd/default/layout/oauth.xml
frontend/base/default/layout/authorizenet.xml
frontend/rwd/default/layout/bundle.xml
frontend/rwd/default/layout/captcha.xml
frontend/base/default/layout/centinel.xml
frontend/rwd/default/layout/newsletter.xml
frontend/rwd/default/layout/downloadable.xml
frontend/base/default/layout/pagecache.xml
frontend/rwd/default/layout/persistent.xml
frontend/base/default/layout/weee.xml
frontend/base/default/layout/xmlconnect.xml
frontend/base/default/layout/moneybookers.xml
frontend/base/default/layout/pulsestorm_checkoutstep.xml
frontend/rwd/default/layout/local.xml
注文レイアウトXMLファイルは、ハンドルごとに注文レイアウトXMLルールが適用されるようにロードされます 。人をつまずかせるのはこの最後の部分です。ハンドルは、これらの最上位のXMLノードです。
<config>
<handle_name>
</handle_name>
</config>
ハンドルは、レイアウトのイベントのようなものです。すべてのページ要求に対して、Magentoは多くのハンドルを発行します。Commerce Bugを使用して、特定のページリクエストに対して発行されたハンドルを確認できます。
画像がオフになっている場合、その特定のページリクエストに対して発行されたハンドルは
<default />
<catalog_category_layered_nochildren />
<STORE_default />
<THEME_frontend_rwd_default />
<catalog_category_view />
<catalog_category_default />
<CATEGORY_3 />
つまり、Magentoはすべてのdefault
XMLチャンクを実行します。まずcore.xml
ファイルに対して、次にファイルに対してすべてのdefault
チャンクを実行しpage.xml
ますlocal.xml
。
次に、Magentoはすべてのcatalog_category_layered_nochildren
XMLチャンクを実行します。最初にcore.xml
ファイルに対して、次にファイルに対して、最後までを実行しpage.xml
ますlocal.xml
。
これは、ハンドルごとに続きます。
あなたはレイアウト更新XMLのビットを持っている場合は、この手段は何ですか、local.xml
内部のdefault
ハンドル、それが実行される前に、レイアウト更新XMLのビットcore.xml
内部ているのcatalog_category_layered_nochildren
ハンドル。これは、特に「local.xmlが最後にロードされる」という従来の知恵が漂っているため、レイアウトXMLシステムで最も混乱を引き起こすものです。
上記で少し混乱し、レイアウトXMLシステムについてさらに学習する必要がある場合、私の本「No Frills Magento Layout」はシステムを徹底的に学習する最良の方法だと思います。