Qware_core/lib/system/system_utils/xlanguechaine.php

182 lines
3.6 KiB
PHP
Executable File

<?php
/**------------------------------------------------
*
* Rooty, 2018 <rooty@rooty.me>
*
*
* This software is protected by copyright, please
* read the file COPYRIGHT.
* This program is distributed in the hope that it
* will be useful, but without any warranty; without
* even the implied warranty of merchantability or
* fitness for a particular purpose. Please
* read the file LICENCE.
*
* Fichier XLangueChaine.php
*
* Ce fichier contient la classe XLangueChaine
* @author Rooty <www.rooty.me|rooty@rooty.me>
* @link www.rooty.me
* @since 2004/04/14
* @version 0.3
* @package system_utils
* @copyright Copyright &copy; 2004-2005, ARD Limousin
*/
if ( !defined('SYSTEM_IN') )
{
die("Hacking attempt");
}
/**
* Classe XLangueChaine
*
* classe de gestion d'un objet chaine traduit....
* @package system_utils
*/
class XLangueChaine
{
/**#@+
* @var chaine
* @access private
*/
/**
* @desc contenu de l'objet
*/
var $contentData = null;
/**
* @desc tableau des valeurs
*/
var $tab = null;
/**#@-*/
//
// Constructor
//
/**
* Constructeur de la classe DataObjetc
*
*<p>Initialise XLangueChaine</p>
* @access private
*/
function __construct($Sql)
{
$this->tab=array();
$this->setXMLContentData($Sql); # Initialise la structure de données
}
/**
* getXMLContentData: retourne la source de données propre à l'objet (XML)
*
* @access public
* @return chaine chaine au format XML
*/
function getXMLContentData()
{
# retourne la chaine XML
$src = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$src.="<XML XLANGUECHAINEVERSION=\"1.0\">\n";
$src.="\t";
foreach($this->tab as $key => $value){
$src.="<".$key.">".htmlspecialchars(strip_tags($value))."</".$key.">\n";
}
$src.="</XML>\n";
$src.="</xml>";
return $src;
}
/**
* setXMLContentData: affecte la source de données propre à l'objet (XML)
*
* @param chaine chaine au format XML
* @access public
* @return booleen
*/
function setXMLContentData($src)
{
$src=str_replace(array("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n",
"<XML XLANGUECHAINEVERSION=\"1.0\">\n",
"\t",
"</XML>\n",
'</xml>',
"\r"
), "", $src);
// $tabLine=split("\n", $src);
$tabLine=explode("\n", $src);
reset($tabLine);
foreach($tabLine as $Line){
if($Line!=""){
$findKey=explode(">", $Line);
if(isset($findKey[0])){
$key=substr($findKey[0], 1);
$value=str_replace("<".$key.">", "", $Line);
$value=str_replace("</".$key.">", "", $value);
if($value!="")
$this->tab["$key"]=unhtmlspecialchars($value);
}
}
}
return true;
}
/**
* getData: retourne la source de données propre à l'objet (XML)
*
* @param chaine nom/chemin de la variable au format "XLangueChaine"
* @access public
* @return chaine valeur de la donnée
*/
function getLanguage($langue)
{
if(isset($this->tab[strtoupper($langue)])){
return $this->tab[strtoupper($langue)];
}else{
return "";
}
}
/**
* setData : affecte la source de données propre à l'objet (XML)
*
* @param chaine nom de la langue
* @param chaine valeur de l'element
* @access public
* @return booleen
*/
function setLanguage($langue,$value)
{
$this->tab[strtoupper($langue)]=$value;
}
/**
* LoadSql: Charge un data object à partir de ses éléments
*
* @param source de donnée (chaine formatée XML)
* @access public
* @return booleen
*/
function setSql($SqlData)
{
return $this->setXMLContentData($SqlData);
}
/**
* Recupere la chaine Final a enregistrer formatée(SQL)
*
* @param source de donnée (chaine formatée XML)
* @access public
* @return chaine chaine a enregistrer sous sql
*/
function getSql()
{
return $this->getXMLContentData();
}
}
?>