ลำดับการโหลด Layout XML ไม่ถูกต้อง


15

เมื่อฉันสร้างไฟล์เลย์เอาต์สำหรับพื้นที่ผู้ดูแลระบบ (ไม่ว่าจะเป็นในชุมชนหรือกลุ่มรหัสท้องถิ่น) บางครั้งวีโอไอพีก็กำลังโหลดเลย์เอาต์ xml นั้นไว้ก่อนที่จะโหลด Adminhtml โมดูลเลย์เอาต์ xml ผลที่ได้คือการโทรอ้างอิงจะถูกยกเลิกเพราะไม่มีบล็อกที่สร้างขึ้นเพื่อใช้กับพวกเขา

เห็นได้ชัดว่าแคชไม่ได้เป็นส่วนหนึ่งที่นี่ ฉันได้เพิ่มMage_Adminhtmlใน<depends/>โหนดในไฟล์ประกาศโมดูล

นี่เป็นปัญหาที่คุณมีมาก่อนหรือไม่? ถ้าเป็นเช่นนั้นจะแก้ไขได้อย่างไร?

ฉันได้ทำงานผ่านปัญหานี้มาหลายครั้งแล้วและหาทางแก้ไขในแต่ละครั้ง แต่ฉันไม่สามารถคิดได้ว่าอะไรทำให้สิ่งนี้เกิดขึ้นตั้งแต่แรก

คำตอบ:


16

เป็นการยากที่จะพูดโดยไม่มีตัวอย่างที่เป็นรูปธรรม แต่ฉันสงสัยว่าคุณกำลังใช้คำสั่งซื้อไฟล์เทียบกับปัญหาการสั่งซื้อ

โดยเฉพาะอย่างยิ่งวีโอไอพีจะโหลดไฟล์ 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>

หมายเลขอ้างอิงนั้นคล้ายกับเหตุการณ์สำหรับโครงร่าง - สำหรับคำขอหน้าเว็บทุกครั้งวีโอไอพีจะมีหมายเลขอ้างอิงจำนวนหนึ่ง คุณสามารถใช้Commerce Bugเพื่อดูว่ามีการออกหมายเลขอ้างอิงสำหรับคำขอหน้าเว็บใดโดยเฉพาะ

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับผู้ที่มีรูปภาพปิดมือจับที่ออกให้สำหรับคำขอหน้านั้นเป็นพิเศษ

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

สิ่งที่หมายถึงนี้เป็นวีโอไอพีจะทำงานทุกdefaultก้อน XML: ครั้งแรกสำหรับcore.xmlไฟล์แล้วทุกdefaultก้อนสำหรับไฟล์ทุกทางลงไปpage.xmllocal.xml

จากนั้น Magento จะเรียกใช้catalog_category_layered_nochildrenXML ทุกอัน: อันดับแรกสำหรับcore.xmlไฟล์จากนั้นpage.xmlไฟล์จะวนไปlocal.xmlเรื่อย ๆ

สิ่งนี้จะดำเนินต่อไปสำหรับการจัดการแต่ละครั้ง

สิ่งที่หมายถึงนี้คือถ้าคุณมีบิตของ XML การปรับปรุงรูปแบบในlocal.xmlภายในdefaultจับมันจะทำงานก่อนบิตของ XML การปรับปรุงรูปแบบในcore.xmlที่ภายในcatalog_category_layered_nochildrenจับ นี่คือสิ่งที่ทำให้เกิดความสับสนมากที่สุดในระบบโครงร่าง XML โดยเฉพาะอย่างยิ่งเนื่องจากมีภูมิปัญญาดั้งเดิมที่ลอยอยู่รอบ ๆ ซึ่งระบุว่า "local.xml โหลดล่าสุด"

หากสิ่งที่กล่าวมาข้างต้นทำให้คุณสับสนเล็กน้อยและคุณจำเป็นต้องเรียนรู้เพิ่มเติมเกี่ยวกับระบบ Layout XML ฉันยังคงคิดว่าหนังสือของฉันNo Frills Magento Layoutเป็นวิธีที่ดีที่สุดในการเรียนรู้ระบบจากภายใน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.