구체적인 예가 없으면 말하기가 어렵지만 파일 순서와 처리 순서 문제가 있다고 생각합니다.
특히, 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 loads last"라는 기존의 지식이 떠 있기 때문입니다.
위의 내용이 약간 혼란스럽고 Layout XML 시스템에 대해 더 자세히 알아야 할 경우에도 필자의 책 No Frills Magento Layout 이 시스템 내부를 배우는 가장 좋은 방법 이라고 생각 합니다.