كيفية إظهار الإشعارات باستخدام addSuccess() و addNotice() في صفحة التكوينات؟

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

سؤال

أريد عرض إشعار النجاح والخطأ باستخدام Mage::getSingleton('core/session')->addSuccess() و ->addError() إذا كان المسؤول في قسم تكوين محدد.

السبب:لقد قمت بعمل امتداد، والذي يحتوي على قسم منفصل في النظام / التكوين، وأريد أن أعطي ملاحظات إذا تم تكوينه بشكل صحيح أم لا، ولكن فقط عندما يكون المشرف في هذا القسم.

لقد حاولت إنشاء كتلة default.notifications، وقد نجحت، ولكن الإشعار كان عبارة عن "إشعار عام"، وليس مربع إشعار أصغر، والذي كان موجودًا في الجزء العلوي من حقول الإعدادات في حقول إعدادات الإضافات الخاصة بي.أيضًا:أريد إضافة هذه الإشعارات فقط إذا كان المسؤول موجودًا في صفحة التكوين الخاصة بهذا القسم المحدد.

شكرًا!

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

المحلول

منطقة الرسالة التي تشير إليها

enter image description here

مأهولة من Mage_Adminhtml_System_ConfigController::saveAction.

قبل تعيين الرسالة، حدث ("admin_system_config_changed_section_{$section}) مطرود من العمل.

مرجع الكود:

Mage::dispatchEvent("admin_system_config_changed_section_{$section}",
                array('website' => $website, 'store' => $store)
            );
            $session->addSuccess(Mage::helper('adminhtml')->__('The configuration has been saved.'));

تحتاج فقط إلى معرفة ما هو موجود في القسم ($section = $this->getRequest()->getParam('section');) ومن المرجح أن تتمكن من استهداف حدث خاص بحفظ القسم الخاص بك.

هناك أيضًا حل بديل:استخدم حقل تلميح في قسم المسؤول.

ضع مجموعة تلميحات في ملف التكوين system.xml الخاص بك.مثال:

<hint>
   <frontend_model>dyncatprod/adminhtml_system_config_fieldset_hint</frontend_model>
     <sort_order>0</sort_order>
     <show_in_default>1</show_in_default>
     <show_in_website>1</show_in_website>
     <show_in_store>1</show_in_store>
</hint>

تأكد من أنه يحتوي على أدنى ترتيب الفرز.

سوف تحتاج إلى تحديد فئة الكتلة، فيما يلي مثال يوضح المسار وفقًا لمثال XML.

enter image description here

يجب أن يحتوي على طريقة تقديم

/**
     * Render fieldset html
     *
     * @param  Varien_Data_Form_Element_Abstract $element
     *
     * @return string
     */
    public function render(Varien_Data_Form_Element_Abstract $element)
    {
        return $this->toHtml();
    }

يمكنك بعد ذلك بالطبع إخراج كل ما تحتاجه، وتشغيل أي منطق تحتاجه، عبر الكتلة الخاصة بك adminhtml_system_config_fieldset_hint

على سبيل المثال، لإخراج بعض المعلومات حول الامتداد المثبت:

enter image description here

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