Трудно сказать без конкретного примера, но я подозреваю, что вы столкнулись с проблемой порядка файлов или порядка дескрипторов.
В частности, 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
дескриптора. Это, безусловно, то, что вызывает наибольшую путаницу в системе макетов XML, особенно с учетом того, что вокруг распространено немного общепринятого мнения, что «local.xml загружается последним».
Если вышесказанное немного смутило вас и вам нужно больше узнать о системе Layout XML, я все же считаю, что моя книга « Без излишеств Magento Layout» - лучший способ изучить систему наизнанку.