Qware_core/lib/system/system_message/systemmessage.php

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 &copy; 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;
}
}
?>