diff --git a/ajax/post-config.php b/ajax/post-config.php
index 1022d43..ad11eaf 100644
--- a/ajax/post-config.php
+++ b/ajax/post-config.php
@@ -3,7 +3,11 @@ $options = array();
$module ='';
include '../class/AccueilModules.php';
foreach($_POST as $module => $valeur){
- AccueilModules::updateModule($module, array('visibility'=>$valeur));
+ $moduleToUpdate = AccueilModules::getModule($module);
+ if($moduleToUpdate != null){
+ $moduleToUpdate->updateConfig(array('visibility'=>$valeur));
+ }
+ //AccueilModules::updateModule($module, array('visibility'=>$valeur));
}
-echo "1";
+echo "1"
?>
diff --git a/ajax/update.php b/ajax/update.php
index 0c7a240..03607cb 100644
--- a/ajax/update.php
+++ b/ajax/update.php
@@ -8,9 +8,12 @@ $options = array();
$module ='';
foreach($_GET as $indice=>$valeur){
if($indice == 'id')
- $module .= $valeur;
+ $module = $valeur;
else
$options[$indice] = $valeur;
}
include '../class/AccueilModules.php';
-echo AccueilModules::updateModule($module, $options);
+$moduleToUpdate = AccueilModules::getModule($module);
+if($moduleToUpdate != null){
+ echo $moduleToUpdate->updateConfig($options);
+}
diff --git a/class/AccueilModules.php b/class/AccueilModules.php
index ccd31d2..3091817 100644
--- a/class/AccueilModules.php
+++ b/class/AccueilModules.php
@@ -1,14 +1,23 @@
modules["$item[id]"] = $item;
}
- $this->getModules();
- $this->buildConfigMenu();
}else{
echo 'Impossible de trouver le fichier de configuration.';
}
@@ -34,11 +41,40 @@ class AccueilModules {
foreach($moduleConf as $confParam){
$params[$confParam->getName()] = "$confParam";
}
- require 'modules/'.$module.'/'.ucfirst($module).'.php';
- call_user_func(array($module, "start"), $params);
+ $module = new $module($params);
+ if(is_subclass_of($module,'Module'))
+ $module->build();
+ // require 'modules/'.$module.'/'.ucfirst($module).'.php';
+ // call_user_func(array($module, "start"), $module, $params);
}
}
}
+
+ /**
+ *
+ * @return le module donné avec ses paramètres actuellement présent en conf
+ */
+ public static function getModule($module){
+ if($config = simplexml_load_file('../'.self::CONFIG_FILE)){
+ $config_xml = $config->item;
+ foreach($config_xml as $item){
+ if($item["id"] == $module){
+ $params = array();
+ foreach($item as $confParam){
+ $params[$confParam->getName()] = "$confParam";
+ }
+ //require '../modules/'.$module.'/'.ucfirst($module).'.php';
+ return new $module($params);
+ }
+ }
+ echo "object not found";
+ return;
+ }else{
+ echo "bad persistance";
+ return;
+ }
+
+ }
/**
*
@@ -92,10 +128,12 @@ class AccueilModules {
* @param $things2change Array du ou des attributs à modifier avec sa ou ses nouvelles valeurs
* @return "ok" String si c'est bon, ou le message d'erreur
*/
- public static function updateModule($module, $things2change){
- require '../modules/'.$module.'/'.ucfirst($module).'.php';
+ /*public static function updateModule($module, $things2change){
+ //require 'Module.php';
+ //require '../modules/'.$module.'/'.ucfirst($module).'.php';
+ $module = new $module();
return call_user_func(array($module, "updateConfig"), $things2change);
- }
+ }*/
/**
*
diff --git a/class/GoogleWeather.class.php b/class/GoogleWeather.class.php
index 1e58f99..fa2e281 100644
--- a/class/GoogleWeather.class.php
+++ b/class/GoogleWeather.class.php
@@ -94,8 +94,9 @@ class GoogleWeatherAPI {
}
} else {
- trigger_error('Google results parse problem : http error '.$getContentCode,E_USER_WARNING);
- return null;
+ //trigger_error('Google results parse problem : http error '.$getContentCode,E_USER_WARNING);
+ $this->is_found = false;
+ //return null;
}
}
diff --git a/class/Module.php b/class/Module.php
index 05ec710..1c8c3ae 100644
--- a/class/Module.php
+++ b/class/Module.php
@@ -1,5 +1,5 @@
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 ';
}
- }
+ }
}
}
\ No newline at end of file
diff --git a/db/config.xml b/db/config.xml
index 5014e32..f71ae76 100644
--- a/db/config.xml
+++ b/db/config.xml
@@ -31,7 +31,7 @@
-2
-
- true
+ false
80
10
Times New Roman, serif
@@ -46,6 +46,8 @@
-
false
+ 0
+ 600
-
true
diff --git a/index.php b/index.php
index ea26623..ceee37f 100644
--- a/index.php
+++ b/index.php
@@ -12,8 +12,10 @@
-require 'class/AccueilModules.php';
+include "class/AccueilModules.php";
$index = new AccueilModules();
+$index->getModules();
+$index->buildConfigMenu();
?>