Initial commit

This commit is contained in:
Némunaire 2013-10-09 15:40:23 +02:00
commit 998d011cd3
233 changed files with 36893 additions and 0 deletions

View file

@ -0,0 +1,28 @@
<?php
if(!defined('ONYX')) exit;
class __config
{
//Tableau des variables de la configuration
var $vars = array();
//Tableau des variables d'environnement
var $envs = array();
//Tableau des modules
var $modules = array();
function __construct($xml = null)
{
if (isset($xml))
{
$this->vars = parse_config($xml, "var", "name");
$this->envs = parse_config($xml, "env", "option");
foreach($xml->getElementsByTagName('module') as $module)
$this->modules[$module->getAttribute('name')] = parse_config($module, "option", "name");
}
}
}
?>

View file

@ -0,0 +1,110 @@
<?php
if(!defined('ONYX')) exit;
class chConfig
{
//Adresse vers le fichier de configuration en cours de modification
private $_filename;
//Le site est-il actif ?
var $active = 1;
//Adresse absolue vers le dossier principal
var $root;
//Activer le cache ?
var $cache = 1;
//Liste des configurations en fonction des fichiers
var $configs;
// Constructeur qui charge le fichier de configuration
function __construct($filename = null)
{
if (!empty($filename))
$this->_filename = $filename;
else
$this->_filename = ONYX."config/root.xml";
//On charge le fichier
$xml = new DOMDocument();
$xml->load($this->_filename);
$this->active = $xml->documentElement->getAttribute('active');
$this->root = $xml->documentElement->getAttribute('root');
$this->cache = $xml->documentElement->getAttribute('cache');
$this->configs = array();
foreach($xml->getElementsByTagName('config') as $value)
{
$this->configs[$value->getAttribute('match')] = new __config($value);
}
}
function addConfig($config)
{
$this->configs[$config] = new __config();
}
function addVar($name, $value, $config = "*")
{
$this->configs[$config]->vars[$name] = $value;
}
function addEnv($option, $value, $config = "*")
{
$this->configs[$config]->envs[$option] = $value;
}
function addModule($name, $config = "*")
{
$this->configs[$config]->modules[$name] = array();
}
function addModuleOption($moduleName, $name, $value, $config = "*")
{
$this->configs[$config]->modules[$moduleName][$name] = $value;
}
//Fonction qui écrit le fichier
function write()
{
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml_configs = $xml->createElement("configs");
$xml_configs->setAttribute("active", $this->active);
$xml_configs->setAttribute("root", $this->root);
$xml_configs->setAttribute("cache", $this->cache);
foreach($this->configs as $match => $config)
{
$xml_config = $xml->createElement("config");
$xml_config->setAttribute("match", $match);
//On écrit les variables
chConfig::unparse_config($xml, $xml_config, $config->vars, "var", "name");
chConfig::unparse_config($xml, $xml_config, $config->envs, "env", "option");
//On écrit les modules
if (is_array($config->modules))
foreach($config->modules as $mod_name => $module)
{
$xml_module = $xml->createElement("module");
$xml_module->setAttribute("name", $mod_name);
chConfig::unparse_config($xml, $xml_module, $module, "option", "name");
$xml_config->appendChild($xml_module);
}
$xml_configs->appendChild($xml_config);
}
$xml->appendChild($xml_configs);
$xml->save($this->_filename);
}
}
?>

View file

@ -0,0 +1,57 @@
<?php
if(!defined('ONYX')) exit;
class chModules
{
//Adresse vers le fichier de configuration en cours de modification
private $_filename;
//Liste des modules
var $modules = array();
// Constructeur qui charge le fichier de modules
function __construct($filename = null)
{
if (!empty($filename))
$this->_filename = $filename;
else
$this->_filename = ONYX."modules/modules.xml";
//On charge le fichier
$xml = new DOMDocument();
$xml->load($this->_filename);
foreach($xml->getElementsByTagName('module') as $value)
{
$this->modules[$value->getAttribute('name')] = parse_config($value->getElementsByTagName("default")->item(0), "option", "name");
}
}
function write()
{
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml_modules = $xml->createElement("modules");
foreach($this->modules as $name => $module)
{
$xml_module = $xml->createElement("module");
$xml_module->setAttribute("name", $name);
$xml_def = $xml->createElement("default");
unparse_config($xml, $xml_def, $module, "option", "name");
$xml_module->appendChild($xml_def);
$xml_modules->appendChild($xml_module);
}
$xml->appendChild($xml_modules);
return $xml;
}
}
?>

View file

@ -0,0 +1,65 @@
<?php
if(!defined('ONYX')) exit;
function unparse_config($create, $xml, $array, $node = 'var', $attribut = 'name')
{
if (is_array($array))
foreach($array as $name => $var)
{
if (is_array($var))
{
$xml_var = $create->createElement($node);
$xml_var->setAttribute($attribut, $name);
unparse_config($create, $xml_var, $var, $node, $attribut);
$xml->appendChild($xml_var);
}
else
{
$xml_var = $create->createElement($node, $var);
$xml_var->setAttribute($attribut, $name);
$xml->appendChild($xml_var);
}
}
}
require_once("__config.class.php");
require_once("chconfig.class.php");
require_once("chmodules.class.php");
function chconfig($type, $file = null)
{
$sortie = "";
if ($type == "modules")
{
$sortie .= '<h1>Modification des paramètres de modules</h1><form action="?t=modules" method="post">';
//On charge ce qu'on veut afficher
$mods = new chModules($file);
$sortie .= '</form>';
}
elseif ($type == "bdd")
{
$sortie .= "<h1>Modification des paramètres de base de données</h1>";
}
else
{
$sortie .= "<h1>Modification des paramètres de configuration</h1>";
}
return $sortie;
}
//Affichage automatique
if (!empty($OPT["show"]))
{
echo "<html><head><title>Modification des paramètres d'Onyx2</title></head><body>";
echo chconfig(gpc("t"));
echo "</body></html>";
exit;
}
?>