يمكن استخدام المحلية.شمل يؤدي إلى نتيجة أخرى من استخدام واحد من التخطيط الافتراضي .ملفات شمل?
-
12-12-2019 - |
سؤال
تحرير: قررت إعادة صياغة سؤالي الأصلي ، في محاولة لجعله سؤالا أكثر عمومية.
أحاول خيارين لتحقيق نفس النتيجة ، لكنها تتحول بشكل مختلف...أنا أعمل في حزمة الماجنتو الافتراضية وبصرف النظر عن الخيارين التي سوف أصف أدناه ، كل شيء آخر في التكوين الخاص بي هو ترك نفسه.
هنا هي بلدي اثنين من الخيارات:
الخيار 1:باستخدام
catalog.xml
لتطبيق التغييرأنا نسخ
app/design/frontend/BASE/default/layout/catalog.xml
إلىapp/design/frontend/DEFAULT/default/layout/
وتغيير الخط 285 من:<block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"/>
في هذا:
<block type="catalog/product_view_type_configurable" name="product.info.options.configurable" as="options_configurable" before="-" template="catalog/product/view/type/options/configurable.phtml"> <block type="core/text_list" name="product.info.options.configurable.renderers" as="attr_renderers" /> <block type="core/text_list" name="product.info.options.configurable.after" as="after" /> </block>
يؤدي هذا الخيار 1 إلى النتيجة التالية (النتيجة التي أحتاجها)
الخيار 2:باستخدام
layout.xml
محاولة تطبيق نفس التغييرأنا لم نسخ وتعديل
catalog.xml
ولكن بدلا من ذلك خلقapp/design/frontend/DEFAULT/default/layout/local.xml
الذي يعمل بشكل كامل.في هذا الملف أضفت الكود التالي:<layout> .... <PRODUCT_TYPE_configurable> <reference name="product.info.options.configurable"> <block type="core/text_list" name="product.info.options.configurable.renderers" as="attr_renderers" /> <block type="core/text_list" name="product.info.options.configurable.after" as="after" /> </reference> </PRODUCT_TYPE_configurable> </layout>
من وجهة نظري (يرجى تصحيح لي إذا كنت مخطئا) هذه هي الطريقة الصحيحة الوحيدة لإضافة مثيلات كتلة
product.info.options.configurable.renderers
وproduct.info.options.configurable.after
إلى مثيل الكتلةproduct.info.options.configurable
(الذي في هذا الخيار 2 يأتي منapp/design/frontend/BASE/default/layout/catalog.xml
).ومع ذلك ، يؤدي هذا الخيار 2 إلى النتيجة التالية (وليس النتيجة التي أحتاجها)
لقد راجعت كل شيء عدة مرات وهذا يلخص حقا خياري مما يؤدي إلى نتائج مختلفة.أتوقع منهم أن يؤدي إلى نفس النتيجة (ما لم يكن الرمز الذي أضفته إلى local.xml
غير صحيح).
لذا فإن سؤالي يأتي أساسا إلى هذا:هل يمكن أن يكون من الممكن استخدام local.xml
يؤدي إلى نتيجة أخرى من القيام بنفس الشيء بالضبط باستخدام أحد التخطيط الافتراضي .ملفات شمل (على سبيل المثال. catalog.xml
)?
المحلول
لم أتحقق من قضيتك ، لذا فإن الإجابة أكثر عمومية.
يمكن أن يكون من الممكن أن استخدام المحلية.شمل يؤدي إلى نتيجة أخرى من القيام بنفس الشيء بالضبط باستخدام واحدة من التخطيط الافتراضي .ملفات شمل (على سبيل المثال.كتالوج.شمل)?
نعم.
لأنه يتم تغيير ترتيب تحميل الملفات.إذا حاولت <reference>
كتلة غير موجودة حتى الآن ، لا يمكنك فعل أي شيء معها.لا <action>
, ، لا جديد <block>
في الداخل ، إلخ.
لتجنب ذلك ، لديك بعض الخيارات:
- استخدام مقبض تخطيط آخر ، والتي تتم معالجتها في وقت لاحق.
<depend>
على الوحدة النمطية التي تنشئ الكتلة ، بحيث يتم تحميل ملفك بعد ذلكcatalog.xml
.- استخدام المحلية.شمل التي يتم تحميلها الماضي.