Como mostrar anúncios com addSuccess() e addNotice() em Configurações de página?
-
19-12-2019 - |
Pergunta
Quero mostrar o sucesso e a notificação de erro com Mage::getSingleton('core/session')->addSuccess()
e ->addError()
se o administrador está em uma determinada Seção de Configuração.
O motivo:Eu fiz uma extensão, que tem um seção separada no Sistema / Configuração, e eu quero dar um feedback se ele está configurado corretamente ou não, mas somente quando o administrador é nessa seção.
Eu tentei criar um padrão.notificações de bloco, o que funcionou, mas a notificação foi uma "notificação global", e não uma pequena caixa de notificação, que foi localizado no topo da configurações de campos de minha extensões de settingfields.Também:Eu quero adicionar estas notificações apenas se o administrador é nesta secção específica da página de Configuração.
Obrigado!
Solução
A área de mensagem que você está se referindo a
é preenchida a partir de Mage_Adminhtml_System_ConfigController::saveAction
.
Antes da mensagem é definido, de um evento ("admin_system_config_changed_section_{$section}
) é acionado.
código ref.:
Mage::dispatchEvent("admin_system_config_changed_section_{$section}",
array('website' => $website, 'store' => $store)
);
$session->addSuccess(Mage::helper('adminhtml')->__('The configuration has been saved.'));
Você só precisa descobrir o que está na seção ($section = $this->getRequest()->getParam('section');
) e mais provável para ser capaz de atingir um evento específico para a sua seção de verão.
Há também uma solução alternativa:Usar uma Dica de campo na área de administração.
Coloque uma PITADA de grupo em seu system.xml arquivo de configuração.Um exemplo:
<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>
certifique-se de que ele tem a mais baixa ordem de classificação.
Você precisará definir o bloco de classe, abaixo está um exemplo, mostrando o caminho, como por a exemplo de xml.
Ele deve conter um método de renderização
/**
* Render fieldset html
*
* @param Varien_Data_Form_Element_Abstract $element
*
* @return string
*/
public function render(Varien_Data_Form_Element_Abstract $element)
{
return $this->toHtml();
}
Em seguida, você pode, claro, de saída, tudo o que você precisa, e executar qualquer que seja a lógica que você precisa, através de seu bloco adminhtml_system_config_fieldset_hint
Um exemplo, para a saída de algumas informações sobre o instalado extensão: