إزالة كتلة ثابتة أو لافتة القطعة من خلال تحديث تخطيط مخصص

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

سؤال

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

قام المطور السابق بإعداده بحيث يكون العنصر في لافتة ، ووضعه مع عنصر واجهة مستخدم عبر نظام إدارة المحتوى.تم إعداده لتظهر على طن من صفحات مختلفة (على سبيل المثال:يتم تعيين الفئات على الكل) ، ونريد الاحتفاظ بها على هذا النحو حتى لا نضطر إلى إضافة فئات جديدة إلى قائمة محددة حيث يتم إنشاء فئات جديدة بواسطة مديري المنتجات وما إلى ذلك.

لم أتمكن من العثور على طريقة لإزالة اللافتات أو الأدوات من فئة معينة ، لذلك قمت بإعادة إنشاء الشعار ككتلة ثابتة ، تنوي استخدام تحديث التخطيط المخصص لإزالته باسمه.

<reference name="left">
<remove name="my_static_block_id"></remove>
</reference> 

هذا لا يعمل!

لقد جربت أيضا الأطفال غير المعينين:

<action method="unsetChildren"/>

أدى هذا إلى إزالة كل شيء من العمود الأيسر (غير مرغوب فيه)

هل هناك طريقة للقيام بذلك?ربما في مكان ما لم أكن أنظر?يعطيكم الصّحة.

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

المحلول

لذلك ما تحاول تحقيقه أمر صعب بسبب الطريقة التي يتم بها إضافة الحاجيات إلى الصفحة ، عندما يتم حفظ القطعة يتم إنشاء تخطيط تحديث شمل تلقائيا ولكن الاسم الذي يتم إنشاؤه هو مجرد تجزئة عشوائية ولدت في الملف أدناه.

:: جينيراتلايوتوبداتكسمل

$hash = Mage::helper('core')->uniqHash();
$xml .= '<block type="' . $this->getType() . '" name="' . $hash . '"' . $template . '>';

ثم يتم حفظ هذا لاحقا في قاعدة البيانات على سبيل المثال في حالتي كان الاسم العشوائي 9 دي 10 إيه 0 دي 6931 دي 18586 إيه 907 بي 201633 دي 878 والذي يمكنك رؤيته في الصورة أدناه.

enter image description here

لذلك على الرغم من أنه ربما ليس من العملي جدا القيام بذلك من الناحية النظرية هناك طريقة يمكنك القيام بذلك دون لمس أي رمز يمكنك إنشاء البحث القطعة لسجل التحديث في جدول قاعدة البيانات core_layout_update احصل على اسم الكتلة الجديد الخاص بك ثم قم بذلك على سبيل المثال <remove name="9d10a0d6931d18586a907b201633d878"/> ولكن إذا قمت بإجراء أي تغيير على القطعة شمل واسم سيتم تحديث وكنت بحاجة إلى تحديث مراجع الاسم مرة أخرى.حاولت أونسيتشيلد والتي لا يبدو أن العمل أظن أن يرجع ذلك إلى الترتيب الذي تتم معالجة شمل للحاجيات.

أعتقد أن لديك خياران حقيقيان:

1) أضف قائمة نصية جديدة إلى العمود الأيسر أو العمود الأيمن أو في أي مكان آخر تريد إضافة عناصر واجهة مستخدم ثم قم بإزالتها على الصفحة.يمكنك القيام بذلك في المواضيع الخاصة بك المحلية.شمل مثل هذا.

    <reference name="left">
<block type="core/text_list" name="widgets_left" as="widgets_left" translate="label">
                        <label>Widgets Left</label>
                    </block>
</reference>

سيؤدي هذا إلى إضافة خيار جديد في الواجهة الخلفية كما في الصورة التي يمكنك بعد ذلك إضافة مثيلات عنصر واجهة المستخدم أيضا أو إزالتها فقط إذا كنت بحاجة إلى ذلك بالاسم لأن لديك الاسم الأيسر كمرجع.

على سبيل المثال enter image description here

يمكنك بعد ذلك القيام بأي مما يلي في الفئة المحددة التي ترغب في إزالتها منها:

<reference name="left">
<action method="unsetChild"><name>widgets_left</name></action>
</reference>

<remove name="widgets_left"/>

2) بدلا من ذلك يمكنك فقط إضافتها في عبر شمل مثل أدناه ، ولكن يبدو لي وكأنك تريد أكبر قدر ممكن من السيطرة عن طريق كمس ولماذا لا بالنسبة لي الحاجيات هي غير مستغلة.

<reference name="left">
            <block type="cms/block" name="cms_left_block_name">
                <action method="setBlockId"><block_id>my_block_identifier_from_magento_backend</block_id></action>
            </block>
        </reference>

سيكون لديك بعد ذلك مرجع ثابت باسم "اسم" سمس_ليفت_بلوك " والتي يمكنك استخدامها إما لإجراء إزالة أو إلغاء تعيين الطفل.

نصائح أخرى

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

على سبيل المثال، كتلة تضاف إلى كتلة الأصل "اليسار" كما يلي: giveacodicetagpre. سيتم إزالة

كما يلي: giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top