Как отображать уведомления с помощью 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');), и вы, скорее всего, сможете настроить таргетинг на событие, специфичное для сохранения вашего раздела.

Также есть альтернативное решение:Используйте поле «Подсказка» в разделе администратора.

Поместите группу HINT в файл конфигурации 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