206 lines
5.6 KiB
PHP
Executable File
206 lines
5.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 SystemMessage.php
|
|
*
|
|
* Ce fichier contient la classe SystemMessage
|
|
*
|
|
* @author Rooty <www.rooty.me|rooty@rooty.me>
|
|
* @link www.rooty.me
|
|
* @since 2004/07/05
|
|
* @version 0.3
|
|
* @package system_message
|
|
* @copyright Copyright © 2009-2018, Rooty
|
|
*/
|
|
|
|
#####################################################################################################
|
|
################################# Parametrage
|
|
#####################################################################################################
|
|
/**
|
|
* declaration du system... si cette variable n'est pas définie, les fichier inclus ne marche pas...
|
|
* cette variable est déclarée sur la page d'execution du script.
|
|
*<p> if ( !defined('SYSTEM_IN') )
|
|
* {
|
|
* die("Hacking attempt");
|
|
* }</p>
|
|
*/
|
|
if ( !defined('SYSTEM_IN') )
|
|
{
|
|
die("Hacking attempt");
|
|
}
|
|
|
|
/**
|
|
* Classe SystemMessage
|
|
*
|
|
* classe de gestion d'un objet chaine traduit....
|
|
* @package system_message
|
|
*/
|
|
class SystemMessage
|
|
{
|
|
|
|
/**#@+
|
|
* @var tableau
|
|
* @access private
|
|
* @desc tableau tableau des messages
|
|
*/
|
|
var $messages = array();
|
|
|
|
/**#@-*/
|
|
|
|
//
|
|
// Constructor
|
|
//
|
|
/**
|
|
* Constructeur de la classe SystemMessage ... parse par défaut le fichier main.ini dans /data/lang/ (PHP5)
|
|
*
|
|
* <p>Initialise SystemMessage</p>
|
|
* @access private
|
|
*/
|
|
function __construct()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* addFile permet d'ajouter un fichier source de SystemMessages
|
|
*
|
|
* <p>inclusion des fichier sous-forme(fichier-nid-oid.mxt)<br />
|
|
* ou inclusion des fichier sous-forme(fichier-oid.mxt) <br />
|
|
* ou fichier.mxt dans la langue courante, <br />
|
|
* sinon, on inclus du fichier par défaut <br />
|
|
* </p>
|
|
* @access public
|
|
* @return chaine chaine au format XML
|
|
*/
|
|
function addFile($fileName, $path="")
|
|
{
|
|
global $CONF_DATA_PATH; /* Chemin pour les données */
|
|
$currentPathDirectory=(isset($path) && $path!="")?$path:$CONF_DATA_PATH."data/message/".$GLOBALS["SYSTEM_USER_SESSION"]->langue->getCode()."/";
|
|
|
|
// var_dump($currentPathDirectory);
|
|
|
|
//Vérification de l'existence de la page sous-forme(page-nid-oid.mxt)
|
|
//$fileName=strtolower(str_replace(".ini", "", $fileName));
|
|
// if (file_exists($currentPathDirectory.$fileName."-".nid()."-".oid().".ini"))
|
|
// var_dump($currentPathDirectory.$fileName);
|
|
if (file_exists($currentPathDirectory.$fileName))
|
|
{
|
|
// var_dump($currentPathDirectory.$fileName);
|
|
//Affectation du template nid-oid
|
|
// $this->messages=array_merge($this->messages, parse_ini_file($currentPathDirectory.$fileName."-".nid()."-".oid().".ini",false));
|
|
$this->messages=array_merge($this->messages, parse_ini_file($currentPathDirectory.$fileName,false));
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
if (file_exists($currentPathDirectory.$fileName."-".oid().".ini"))
|
|
{
|
|
//Affectation du template oid
|
|
$this->messages=array_merge($this->messages, parse_ini_file($currentPathDirectory.$fileName."-".oid().".ini",false));
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/* Gestion des chemins par défaut */
|
|
$defaultPathDirectory=(isset($path) && $path!="")?$path:$CONF_DATA_PATH."data/message/".$GLOBALS["SYSTEM_DEFAULT_LANGUAGE_CODE"]."/";
|
|
|
|
/* Vérification de l'existance du fichier */
|
|
if (file_exists($defaultPathDirectory.$fileName.".ini"))
|
|
{
|
|
/* inclusion du fichier */
|
|
$this->messages=array_merge($this->messages, parse_ini_file($defaultPathDirectory.strtolower($fileName.".ini"),false));
|
|
return true;
|
|
}else{
|
|
//addError(1, "SystemMessage", "Impossible de trouver le fichier".$defaultPathDirectory.$fileName."", __line__, __file__);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* getMessage : recupére un SystemMessage en fonction de son identifiant
|
|
*
|
|
* @param chaine nom/chemin de la variable au format "SystemMessage"
|
|
* @access public
|
|
* @return chaine valeur de la donn?e
|
|
*/
|
|
function getMessage($name)
|
|
{
|
|
if(array_key_exists($name, $this->messages))
|
|
{
|
|
// var_dump($this->messages);
|
|
return $this->messages[$name];
|
|
}else{
|
|
return "";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* getMessage : recupére un SystemMessage en fonction de son identifiant
|
|
*
|
|
* @param chaine nom/chemin de la variable au format "SystemMessage"
|
|
* @access public
|
|
* @return chaine valeur de la donn?e
|
|
*/
|
|
function getMessageCode($name)
|
|
{
|
|
if(array_search($name, $this->messages))
|
|
{
|
|
return array_search($name, $this->messages);
|
|
}else{
|
|
return "";
|
|
}
|
|
}
|
|
|
|
/**
|
|
* execPrinting : appel tous les printing leur methode __print()
|
|
*
|
|
* @param object objet template (/defaut $GLOBALS["SYSTEM_TEMPLATE"])
|
|
* @access public
|
|
* @return booleen
|
|
*/
|
|
function execPrinting($Tpl="")
|
|
{
|
|
if ($Tpl=="")
|
|
$Tpl=&$GLOBALS["SYSTEM_TEMPLATE"];
|
|
|
|
$Tpl->WithMxPath("");
|
|
reset($this->messages);
|
|
/* on récupére les index. (préformatage du tableau) */
|
|
$tabBloc=array_keys($Tpl->templateContent);
|
|
for ($i=0; $i<count($tabBloc); $i++)
|
|
{
|
|
$tabBloc[$i]=str_replace(str_replace("mxt", "",$GLOBALS['SYSTEM_TEMPLATE_MAIN']), "", $tabBloc[$i]).".";
|
|
}
|
|
|
|
while (list($key, $val) = each($this->messages))
|
|
{
|
|
/* Gére en fonction de la template si le flag existe */
|
|
for ($i=0; $i<count($tabBloc); $i++)
|
|
{
|
|
/* enlévé car plus rapide avec la lib Modelixe (Granilim... -> sinon erreur) */
|
|
if ($Tpl->IsMxFlag($tabBloc[$i].$key, "text")!=false)
|
|
{
|
|
$Tpl->MxText($tabBloc[$i].$key, htmlentitiesconv($val));
|
|
}
|
|
if ($Tpl->IsMxAttribut($tabBloc[$i].$key)!=false)
|
|
{
|
|
$Tpl->MxAttribut($tabBloc[$i].$key, htmlentitiesconv($val));
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
?>
|