Ville de la météo modifiable

This commit is contained in:
Chouchen
2010-09-15 21:36:14 +00:00
parent f52b55ed1e
commit e5415117a1
5 changed files with 118 additions and 17 deletions

View File

@@ -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);
}
}

View File

@@ -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";
}
}