102 lines
2.4 KiB
PHP
102 lines
2.4 KiB
PHP
<?php
|
|
class Module
|
|
{
|
|
|
|
// Nom du module (aka le nom de la classe en minuscule)
|
|
protected $moduleName;
|
|
|
|
// Libellé du module (aka le nom affiché)
|
|
protected $moduleTitle;
|
|
|
|
// Le chemin vers le module
|
|
protected $pathToModule;
|
|
|
|
/**
|
|
* Liste des paramètres et leurs valeurs de l'object
|
|
*
|
|
* @var array
|
|
*/
|
|
private $params = array();
|
|
|
|
public function __construct($class, $params = null){
|
|
$this->setNames($class, $this->moduleTitle);
|
|
if($params != null && is_array($params))
|
|
$this->setParams($params);
|
|
}
|
|
|
|
/**
|
|
* @param array correspondant aux paramètres du $paramsList
|
|
* Applique les paramètres du module depuis le conf
|
|
*/
|
|
public function setParams($params){
|
|
$this->params = $params;
|
|
}
|
|
|
|
/**
|
|
* @return Array les paramètres du module
|
|
*/
|
|
public function getParams(){
|
|
return $this->params;
|
|
}
|
|
|
|
/**
|
|
* @param string le paramètre dont on veut la valeur
|
|
* @return string valeur du paramètre
|
|
*/
|
|
public function getParam($param){
|
|
if(isset($this->params[$param]))
|
|
return $this->params[$param];
|
|
else
|
|
return;
|
|
}
|
|
|
|
/**
|
|
* @return string le nom de la classe (du module)
|
|
*/
|
|
private function getModuleName(){
|
|
return $this->moduleName;
|
|
}
|
|
|
|
/**
|
|
* Donne les noms et chemins du module
|
|
*/
|
|
private function setNames($module, $libelle){
|
|
$this->moduleName = $module;
|
|
$this->pathToModule = 'modules/'.$this->moduleName.'/';
|
|
$this->moduleTitle = $libelle;
|
|
}
|
|
|
|
/**
|
|
* @return la liste des paramètres du module
|
|
*/
|
|
public function getParamsList(){
|
|
return $this->paramsList;
|
|
}
|
|
|
|
/**
|
|
* @param $class string nom du module
|
|
* @param $key string le nom du paramètre à changer
|
|
* @param $value string valeur du paramètre
|
|
* Enregistre le paramètre dans le conf
|
|
*/
|
|
public function setParam($class, $key, $value) {
|
|
// echo 'setting :'.$key.' as '.$value.' in the '.$class.'\'s module';
|
|
$xmla = simplexml_load_file('../'.AccueilModules::CONFIG_FILE);
|
|
|
|
$path = $xmla->xpath("//item[@id='".$class."']");
|
|
$path[0]->$key = $value;
|
|
|
|
$xmla->asXML('../'.AccueilModules::CONFIG_FILE);
|
|
}
|
|
|
|
public function updateConfig($updated){
|
|
foreach ($updated as $what=>$withWhat){
|
|
if(array_key_exists($what, $this->getParams())){
|
|
$this->setParam($this->moduleName, $what, $withWhat);
|
|
}else{
|
|
echo $what.' isn\'t in ';
|
|
}
|
|
}
|
|
}
|
|
|
|
} |