Domanda

Voglio visualizzare il successo e la notifica di errore con Mage::getSingleton('core/session')->addSuccess() e ->addError() se l'amministratore è su una sezione di configurazione specifica.

Il motivo: ho creato un'estensione, che ha una sezione separata in sistema / configurazione, e voglio fornire un feedback se è configurato correttamente o meno, ma solo quando ilL'amministratore è in quella sezione .

Ho provato a creare un blocco predefinito.nitificazioni, che ha funzionato, ma la notifica era una "notifica globale", non una casella di notifica più piccola, che si trovava nella parte superiore dei campi delle impostazioni dei settori delle impostazioni delle mie estensioni. Inoltre: voglio aggiungere queste notifiche solo se l'amministratore è in questa pagina di configurazione della sezione specifica.

Grazie!

È stato utile?

Soluzione

L'area dei messaggi che ti stai riferendo a

 Inserire l'immagine Descrizione qui

è popolato da Mage_Adminhtml_System_ConfigController::saveAction.

Prima che il messaggio sia impostato, un evento ("admin_system_config_changed_section_{$section}) viene sparato.

Codice Rif:

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

Hai solo bisogno di capire cosa si trova nella sezione ($section = $this->getRequest()->getParam('section');) e molto probabilmente sarà in grado di indirizzare un evento specifico per il salvataggio della sezione.

C'è anche una soluzione alternativa: utilizzare un campo di suggerimento nella sezione Admin.

Posiziona un gruppo di suggerimenti nel tuo file di configurazione System.xml. Un esempio:

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

Assicurati che abbia l'ordinamento più basso.

È necessario definire la classe di blocco, di seguito è un esempio, mostrando il percorso di TEH secondo l'esempio XML.

 Inserire l'immagine Descrizione qui

deve contenere un metodo di rendering

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

Puoi quindi ovviamente l'output possibile, e eseguire qualsiasi logica di cui hai bisogno, tramite il blocco adminhtml_system_config_fieldset_hint

Un esempio, per emettere alcune informazioni sull'estensione installata:

 Inserire l'immagine Descrizione qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top