Comment montrer les avis avec addSuccess() et addNotice() sur les Configurations de page?
-
19-12-2019 - |
Question
Je veux afficher des succès et des notifications d'erreur avec Mage::getSingleton('core/session')->addSuccess()
et ->addError()
si l'admin est sur une Configuration spécifique de la Section.
La raison:J'ai fait une extension, qui a un section distincte dans Système / Configuration, et je veux donner des commentaires si elle est correctement configuré ou pas, mais seulement quand l'admin est à cette section.
J'ai essayé de créer une valeur par défaut.les notifications de bloc, qui a travaillé, mais la notification a été un mondial de notification", pas une petite boîte de notification, qui était situé sur le dessus de l'paramètres des champs de mes extensions' settingfields.Aussi:Je veux ajouter ces notifications uniquement si l'administrateur est à cette section de la page de Configuration.
Merci!
La solution
La zone de message que vous mentionnez
est rempli à partir de Mage_Adminhtml_System_ConfigController::saveAction
.
Avant que le message est défini, un événement ("admin_system_config_changed_section_{$section}
) est déclenché.
code réf:
Mage::dispatchEvent("admin_system_config_changed_section_{$section}",
array('website' => $website, 'store' => $store)
);
$session->addSuccess(Mage::helper('adminhtml')->__('The configuration has been saved.'));
Vous avez juste besoin de comprendre ce qui est dans la section ($section = $this->getRequest()->getParam('section');
) et vous serait le plus susceptible d'être en mesure de cibler un événement spécifique à votre section d'économie.
Il existe aussi une autre solution:Utiliser un Indicateur de champ dans la section admin.
Place un SOUPÇON de groupe dans votre system.xml fichier de configuration.Un exemple:
<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>
assurez-vous qu'il a le plus faible de l'ordre de tri.
Vous devez définir le bloc de la classe, ci-dessous est un exemple, montrant le chemin d'accès que par l'exemple de xml.
Il doit contenir une méthode de rendu
/**
* Render fieldset html
*
* @param Varien_Data_Form_Element_Abstract $element
*
* @return string
*/
public function render(Varien_Data_Form_Element_Abstract $element)
{
return $this->toHtml();
}
Vous pouvez ensuite des cours de sortie quel que soit votre besoin, et exécuter n'importe quelle logique vous avez besoin, par l'intermédiaire de votre bloc adminhtml_system_config_fieldset_hint
Un exemple, pour afficher des informations sur l'extension installée: