<?php
/*
* Classe que permite a leitura de um arquivo XML, faz um loop e adiciona no array ($arrayMsg)
* as mensagens de erro como indice (atributo <error>) e seus respectivos conteúdos (atributo <content>).
*
* Contém método para exibir as mensagens no ponto em que for chamada através
*
* ATENÃÃO / ATTENTION / ATENCIÃN
* Esta classe pode ser utilizada livremente, mas por favor, não remova os créditos.
* This class can be used freely, but please do not remove the credits
* Esta clase puede ser utilizado libremente, pero por favor no retire los créditos
*
* Autor: Claudio Eden
* Email: hide@address.com
* Site: www.eden.com.br
* Versão: 2.03
*/
class LoadMessage {
private $arrayMsg = array();
private $xmlFile;
private $xml;
function __construct($xmlFile = "msg.xml") {
$this->xml = $xmlFile;
$this->loadXml($this->xml);
}
/* Método que carrega o xml contendo as mensagens utilizadas no sistema */
private function loadXml($xml)
{
// verifica se arquivo existe para prosseguir com a carga
if(!file_exists($xml))
{
// Se arquivo NÃO existe, exibe informação na tela
echo "O arquivo ".$this->xml." não existe!";
exit();
}
$simpleXml = @simplexml_load_file($xml);
if(!$simpleXml)
{
// Caso não consiga carregar o arquivo XML, exibe informação na tela
echo "Erro ao carregar o arquivo ".$this->xml."!";
exit();
}
// Executa um loop no arquivo e cria um ARRAY cujo indice é o erro e o conteúdo é a mensagem a ser exibida
foreach($simpleXml->msg as $loadMsg){
$this->arrayMsg["$loadMsg->error"][content] = $loadMsg->content;
$this->arrayMsg["$loadMsg->error"][type] = $loadMsg->type;
}
}
/* Método que verifica se o parâmetro existe na chave(Ãndice) do array */
private function msg($keyMsg)
{
if($this->arrayMsg == null || $this->arrayMsg[$keyMsg] == null )
{
return "empty";
}
return $this->arrayMsg[$keyMsg];
}
/* Método para imprimir a mensagem na tela. */
function showMsg($message)
{
$this->txtRetorno = '<div id="msg" class="'.$this->arrayMsg[$message][type].'">';
$this->txtRetorno .= utf8_decode($this->arrayMsg[$message][content]);
$this->txtRetorno .= '</div>';
echo $this->txtRetorno."<br />";
}
/* Método para destruir o array de mensagens */
function __destruct()
{
unset($this->arrayMsg);
}
}
?>