Ville de la météo modifiable
This commit is contained in:
@@ -1,11 +1,16 @@
|
||||
<?php
|
||||
class AccueilModules {
|
||||
private $persistance = 'db/config.xml';
|
||||
const CONFIG_FILE = 'db/config.xml';
|
||||
private $modules = array();
|
||||
|
||||
|
||||
/**
|
||||
* Constructeur
|
||||
* Initialise le XML de conf g<>n<EFBFBD>rale
|
||||
* Active les modules
|
||||
* Construit le menu
|
||||
*/
|
||||
function __construct(){
|
||||
if($config = simplexml_load_file($this->persistance)){
|
||||
if($config = simplexml_load_file(self::CONFIG_FILE)){
|
||||
$config_xml = $config->item;
|
||||
foreach($config_xml as $item){
|
||||
$this->modules["$item[id]"] = $item;
|
||||
@@ -17,6 +22,10 @@ class AccueilModules {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Initialise les modules activ<69>s uniquement
|
||||
*/
|
||||
function getModules(){
|
||||
foreach($this->modules as $module=>$moduleConf){
|
||||
if(file_exists('class/'.ucfirst($module).'.php') && $moduleConf->visibility == "true"){
|
||||
@@ -30,6 +39,10 @@ class AccueilModules {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Construit et ins<6E>re le menu de changement de config
|
||||
*/
|
||||
function buildConfigMenu(){
|
||||
echo '<a href="#config" id="config-menu">Configuration</a>
|
||||
<div style="display:none;">
|
||||
@@ -48,4 +61,16 @@ class AccueilModules {
|
||||
</div>
|
||||
</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @property Chaque module poss<73>de la fonction updateModule en static qui permet de changer un ou plusieurs de ses attributs
|
||||
* @param $module String Nom du module <20> modifier
|
||||
* @param $things2change Array du ou des attributs <20> 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 ucfirst($module).'.php';
|
||||
return call_user_func(array($module, "updateConfig"), $things2change);
|
||||
}
|
||||
}
|
@@ -1,9 +1,15 @@
|
||||
<?php
|
||||
class weather {
|
||||
private $params = array();
|
||||
|
||||
//TODO rajouter les params en d<>tail
|
||||
public static $params = array(
|
||||
'visibility',
|
||||
'city',
|
||||
'x',
|
||||
'y'
|
||||
);
|
||||
|
||||
public function __construct($params){
|
||||
$this->setParams($params);
|
||||
//$this->setParams($params);
|
||||
$city = $params['city'];
|
||||
include 'GoogleMeteo.php';
|
||||
echo '<script type="text/javascript" src="js/jquery.weather.js"></script>
|
||||
@@ -15,12 +21,45 @@ class weather {
|
||||
'.$future_weather2.'
|
||||
</div>';
|
||||
}
|
||||
|
||||
private function setParams($params){
|
||||
|
||||
private static function setParams($params){
|
||||
$this->params = $params;
|
||||
}
|
||||
|
||||
|
||||
public static function start($params){
|
||||
$weather = new weather($params);
|
||||
}
|
||||
|
||||
public static function updateConfig($updated){
|
||||
foreach ($updated as $what=>$withWhat){
|
||||
if(in_array($what, self::$params)){
|
||||
switch($what){
|
||||
case 'city':
|
||||
self::setCity($withWhat);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Modifie la ville
|
||||
* @param String $city la ville.
|
||||
* @return String "ok" ou message d'erreur (effectue aussi l'enregistrement en XML)
|
||||
*/
|
||||
public function setCity($city){
|
||||
// Saving the position and z-index of the note:
|
||||
$xmla = simplexml_load_file('../'.AccueilModules::CONFIG_FILE);
|
||||
|
||||
$path = $xmla->xpath("//item[@id='weather']");
|
||||
$path[0]->city = $city;
|
||||
|
||||
$xmla->asXML('../'.AccueilModules::CONFIG_FILE);
|
||||
|
||||
echo "ok";
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user