Come mostrare le comunicazioni con ADDSUCCESS () e AddNotice () sulla pagina delle configurazioni?
-
19-12-2019 - |
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!
Soluzione
L'area dei messaggi che ti stai riferendo a
è 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.
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: