يمكن استخدام المحلية.شمل يؤدي إلى نتيجة أخرى من استخدام واحد من التخطيط الافتراضي .ملفات شمل?

magento.stackexchange https://magento.stackexchange.com//questions/46721

سؤال

تحرير: قررت إعادة صياغة سؤالي الأصلي ، في محاولة لجعله سؤالا أكثر عمومية.

أحاول خيارين لتحقيق نفس النتيجة ، لكنها تتحول بشكل مختلف...أنا أعمل في حزمة الماجنتو الافتراضية وبصرف النظر عن الخيارين التي سوف أصف أدناه ، كل شيء آخر في التكوين الخاص بي هو ترك نفسه.

هنا هي بلدي اثنين من الخيارات:

  • الخيار 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 إلى النتيجة التالية (النتيجة التي أحتاجها)

    enter image description here

  • الخيار 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 إلى النتيجة التالية (وليس النتيجة التي أحتاجها)

    enter image description here

لقد راجعت كل شيء عدة مرات وهذا يلخص حقا خياري مما يؤدي إلى نتائج مختلفة.أتوقع منهم أن يؤدي إلى نفس النتيجة (ما لم يكن الرمز الذي أضفته إلى local.xml غير صحيح).

لذا فإن سؤالي يأتي أساسا إلى هذا:هل يمكن أن يكون من الممكن استخدام local.xml يؤدي إلى نتيجة أخرى من القيام بنفس الشيء بالضبط باستخدام أحد التخطيط الافتراضي .ملفات شمل (على سبيل المثال. catalog.xml)?

هل كانت مفيدة؟

المحلول

لم أتحقق من قضيتك ، لذا فإن الإجابة أكثر عمومية.

يمكن أن يكون من الممكن أن استخدام المحلية.شمل يؤدي إلى نتيجة أخرى من القيام بنفس الشيء بالضبط باستخدام واحدة من التخطيط الافتراضي .ملفات شمل (على سبيل المثال.كتالوج.شمل)?

نعم.

لأنه يتم تغيير ترتيب تحميل الملفات.إذا حاولت <reference> كتلة غير موجودة حتى الآن ، لا يمكنك فعل أي شيء معها.لا <action>, ، لا جديد <block> في الداخل ، إلخ.

لتجنب ذلك ، لديك بعض الخيارات:

  1. استخدام مقبض تخطيط آخر ، والتي تتم معالجتها في وقت لاحق.
  2. <depend> على الوحدة النمطية التي تنشئ الكتلة ، بحيث يتم تحميل ملفك بعد ذلك catalog.xml.
  3. استخدام المحلية.شمل التي يتم تحميلها الماضي.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top