Amélioration de l'organisation du code : la classe principale "Module" est maintenant prête et les modules l'ont bien étendue.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<?php
|
||||
abstract class Module
|
||||
class Module
|
||||
{
|
||||
/**
|
||||
* Liste des paramètres du module en concordance avec le "config.xml"
|
||||
@@ -22,20 +22,79 @@ abstract class Module
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $params = array();
|
||||
private $params = array();
|
||||
|
||||
private function setParams($params){
|
||||
public function __construct($class, $params){
|
||||
$this->setNames($class, $this->moduleTitle);
|
||||
$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;
|
||||
}
|
||||
|
||||
abstract static function start($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;
|
||||
}
|
||||
|
||||
/**
|
||||
* @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);
|
||||
|
||||
public static function updateConfig($updated){
|
||||
$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(in_array($what, self::$paramsList)){
|
||||
call_user_func(array(get_class(), "set".ucfirst($what)), $withWhat);
|
||||
if(array_key_exists($what, $this->getParams())){
|
||||
$this->setParam($this->moduleName, $what, $withWhat);
|
||||
}else{
|
||||
echo $what.' isn\'t in ';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user