Frage

Ich möchte Erfolgs- und Fehlerbenachrichtigungen anzeigen mit Mage::getSingleton('core/session')->addSuccess() Und ->addError() wenn sich der Administrator in einem bestimmten Konfigurationsabschnitt befindet.

Der Grund:Ich habe eine Erweiterung erstellt, die eine hat separater Abschnitt in System/Konfiguration, und ich möchte eine Rückmeldung geben, ob es richtig konfiguriert ist oder nicht, aber Nur wenn sich der Administrator in diesem Abschnitt befindet.

Ich habe versucht, einen default.notifications-Block zu erstellen, was funktioniert hat, aber die Benachrichtigung war eine „globale Benachrichtigung“ und kein kleineres Benachrichtigungsfeld, das sich oben in den Einstellungsfeldern der Einstellungsfelder meiner Erweiterungen befand.Auch:Ich möchte diese Benachrichtigungen nur hinzufügen, wenn sich der Administrator auf der Konfigurationsseite dieses bestimmten Abschnitts befindet.

Danke!

War es hilfreich?

Lösung

Der Nachrichtenbereich, auf den Sie sich beziehen

enter image description here

wird bevölkert von Mage_Adminhtml_System_ConfigController::saveAction.

Bevor die Nachricht gesetzt wird, muss ein Ereignis ("admin_system_config_changed_section_{$section}) wird gefeuert.

Code-Referenz:

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

Sie müssen nur herausfinden, was in dem Abschnitt steht ($section = $this->getRequest()->getParam('section');) und Sie könnten höchstwahrscheinlich ein spezifisches Ereignis für Ihre Abschnittsspeicherung auswählen.

Es gibt auch eine alternative Lösung:Verwenden Sie ein Hinweisfeld im Admin-Bereich.

Platzieren Sie eine HINT-Gruppe in Ihrer system.xml-Konfigurationsdatei.Ein Beispiel:

<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>

Stellen Sie sicher, dass es die niedrigste Sortierreihenfolge hat.

Sie müssen die Blockklasse definieren. Unten sehen Sie ein Beispiel, das den Pfad gemäß dem XML-Beispiel zeigt.

enter image description here

Es muss eine Rendermethode enthalten

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

Sie können dann natürlich über Ihren Block alles ausgeben, was Sie brauchen, und jede beliebige Logik ausführen, die Sie brauchen adminhtml_system_config_fieldset_hint

Ein Beispiel, um einige Informationen über die installierte Erweiterung auszugeben:

enter image description here

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top