Mizanpaj XML'inin yanlış yükleme sırası


15

Yönetici alanı için bir düzen dosyası oluşturduğumda (ister topluluk ister yerel kod havuzunda olsun), bazen Magento, Adminhtml modül yerleşimi xml yüklenmeden önce bu yerleşim xml'sini yüklüyor. Sonuç olarak, başvuru çağrıları uygulanacak blok oluşturulmadığından referans çağrıları atılır.

Açıkçası, önbellekleme burada bir rol oynamıyor. Eklediğim Mage_Adminhtmliçinde <depends/>modül beyan dosyasında düğüm.

Bu daha önce yaşadığınız bir sorun mu? Öyleyse, nasıl çözülür?

Bu konuda birkaç kez çalıştım ve her seferinde bir çözüme ulaştım, ancak bunun ilk başta ne olmasına neden olduğunu anlayamıyorum.

Yanıtlar:


16

Somut bir örnek olmadan söylemek zor, ancak bir dosya siparişi ve işlem sırası sorunuyla karşılaştığınızdan şüpheleniyorum.

Özellikle, Magento XML dosyalarını modül sırasına göre yükler local.xml. İşte sırayla tipik bir liste

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

- Sipariş düzeni XML dosyaları sipariş Düzen XML kurallar uygulanır buyruklarına yüklenir  sap başına . İnsanları harekete geçiren bu son kısım. Kulplar bu üst düzey XML düğümleridir.

<config>
    <handle_name>
    </handle_name>
</config>

Kulplar mizanpaj için benzer olaylardır - her sayfa isteği için Magento bir dizi tanıtıcı yayınlar. Belirli bir sayfa isteği için hangi tanıtıcıların yayınlandığını görmek için Ticaret Hatası'nı kullanabilirsiniz

resim açıklamasını buraya girin

Görüntüleri kapalı olanlar için, söz konusu sayfa isteği için yayınlanan tanıtıcılar

<default />
<catalog_category_layered_nochildren />
<STORE_default />
<THEME_frontend_rwd_default />
<catalog_category_view />
<catalog_category_default />
<CATEGORY_3 />

Bunun anlamı, Magento her defaultXML yığınını çalıştıracaktır : önce core.xmldosya için, daha sonra dosya defaultiçin her yığın page.xml,local.xml .

Ardından, Magento her catalog_category_layered_nochildrenXML yığınını çalıştıracaktır : önce core.xmldosya için, daha sonra page.xmldosya içinlocal.xml .

Bu, her tutamaç için devam eder.

Bu ne anlama geliyor sen düzen güncelleme XML biraz varsa, olduğu local.xmlbir iç defaultkolu, bu çalışacaktır önce de düzen güncelleme XML biraz core.xmliçeride o yıllardancatalog_category_layered_nochildren kolu. Bu, düzen XML sisteminde en fazla karışıklığa neden olan şeydir, özellikle de "local.xml yükleri en son" diyen biraz geleneksel bilgelik olduğundan.

Yukarıdakiler sizi biraz karıştırırsa ve Layout XML sistemi hakkında daha fazla bilgi edinmeniz gerekiyorsa, yine de No Frills Magento Layout kitabımın sistemi içeriden öğrenmenin en iyi yolu olduğunu düşünüyorum .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.