Installation du script GoogleMeteo.php en échange de meteo.php pour choix de la ville + lien vers enregistrement todoist
This commit is contained in:
parent
9f637b565d
commit
14e63a7844
36
GoogleMeteo.php
Normal file
36
GoogleMeteo.php
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
require('class/GoogleWeather.class.php');
|
||||||
|
|
||||||
|
//ça récupère un truc du style : http://www.google.com/ig/api?weather=paris&hl=fr
|
||||||
|
if($city != '' || $city != null){
|
||||||
|
$gweather = new GoogleWeatherAPI($city,'fr');
|
||||||
|
|
||||||
|
if($gweather->isFound()) {
|
||||||
|
$currentTemp = $gweather->getCurrent();
|
||||||
|
$forecastTemp = $gweather->getForecast();
|
||||||
|
}
|
||||||
|
$present_weather = 'Actuellement : '.$currentTemp['temp_c'].'°C - '.$currentTemp['condition'];
|
||||||
|
$i=0;
|
||||||
|
foreach($forecastTemp as $temp) {
|
||||||
|
${'future_weather'.$i} = $temp['day_of_week'].' : '.$temp['low'].'°C | '.$temp['high'].'°C - '.$temp['condition'];
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(strpos(strtolower($present_weather),"soleil") !== false) {?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/soleil.css">
|
||||||
|
<?}
|
||||||
|
if(strpos(strtolower($present_weather),"nuage") !== false) {?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/nuage.css">
|
||||||
|
<?}
|
||||||
|
if(strpos(strtolower($present_weather),"peu nuageux") !== false) {?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/peunuage.css">
|
||||||
|
<?}
|
||||||
|
if((strpos(strtolower($present_weather),"pluie") !== false) || (strpos(strtolower($present_weather),"averse") !== false)) {?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/pluie.css">
|
||||||
|
<?}
|
||||||
|
if(strpos(strtolower($present_weather),"neige") !== false) {?>
|
||||||
|
<link rel="stylesheet" type="text/css" href="css/neige.css">
|
||||||
|
<?}
|
||||||
|
}else
|
||||||
|
$present_weather = 'Ville non renseignée';
|
||||||
|
|
168
class/GoogleWeather.class.php
Normal file
168
class/GoogleWeather.class.php
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
if(isset($_GET['source'])) {
|
||||||
|
highlight_file(__FILE__);
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
|
||||||
|
/***************************************************************
|
||||||
|
*
|
||||||
|
* 09/05/2009
|
||||||
|
*
|
||||||
|
* Copyright notice
|
||||||
|
*
|
||||||
|
* (c) 2009 Yohann CERDAN <cerdanyohann@yahoo.fr>
|
||||||
|
* All rights reserved
|
||||||
|
*
|
||||||
|
* This script is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* This copyright notice MUST APPEAR in all copies of the script!
|
||||||
|
***************************************************************/
|
||||||
|
|
||||||
|
class GoogleWeatherAPI {
|
||||||
|
/** City code input **/
|
||||||
|
private $city_code = '';
|
||||||
|
|
||||||
|
/** City label get on the google webservice **/
|
||||||
|
private $city = '';
|
||||||
|
|
||||||
|
/** Domain of the google website **/
|
||||||
|
private $domain = 'www.google.com';
|
||||||
|
|
||||||
|
/** Prefix of the img link **/
|
||||||
|
private $prefix_images = '';
|
||||||
|
|
||||||
|
/** Array with current weather **/
|
||||||
|
private $current_conditions = array();
|
||||||
|
|
||||||
|
/** Array with forecast weather **/
|
||||||
|
private $forecast_conditions = array();
|
||||||
|
|
||||||
|
/** If the city was found **/
|
||||||
|
private $is_found = true;
|
||||||
|
|
||||||
|
/** The HTML response send by the service **/
|
||||||
|
private $response;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class constructor
|
||||||
|
* @param $city_code is the label of the city
|
||||||
|
* @param $lang the lang of the return weather labels
|
||||||
|
* @return ...
|
||||||
|
*/
|
||||||
|
|
||||||
|
function __construct ($city_code,$lang='fr') {
|
||||||
|
$this->city_code = $city_code;
|
||||||
|
$this->prefix_images = 'http://'.$this->domain;
|
||||||
|
$this->url = 'http://'.$this->domain.'/ig/api?weather='.urlencode($this->city_code).'&hl='.$lang;
|
||||||
|
|
||||||
|
$getContentCode = $this->getContent($this->url);
|
||||||
|
|
||||||
|
if($getContentCode == 200) {
|
||||||
|
|
||||||
|
$content = utf8_encode($this->response);
|
||||||
|
|
||||||
|
$xml = simplexml_load_string($content);
|
||||||
|
|
||||||
|
if(!isset($xml->weather->problem_cause)) {
|
||||||
|
|
||||||
|
$xml = simplexml_load_string($content);
|
||||||
|
|
||||||
|
$this->city = (string)$xml->weather->forecast_information->city->attributes()->data;
|
||||||
|
|
||||||
|
$this->current_conditions['condition'] = (string)$xml->weather->current_conditions->condition->attributes()->data;
|
||||||
|
$this->current_conditions['temp_f'] = (string)$xml->weather->current_conditions->temp_f->attributes()->data;
|
||||||
|
$this->current_conditions['temp_c'] = (string)$xml->weather->current_conditions->temp_c->attributes()->data;
|
||||||
|
$this->current_conditions['humidity'] = (string)$xml->weather->current_conditions->humidity->attributes()->data;
|
||||||
|
$this->current_conditions['icon'] = $this->prefix_images.(string)$xml->weather->current_conditions->icon->attributes()->data;
|
||||||
|
$this->current_conditions['wind_condition'] = (string)$xml->weather->current_conditions->wind_condition->attributes()->data;
|
||||||
|
|
||||||
|
foreach($xml->weather->forecast_conditions as $this->forecast_conditions_value) {
|
||||||
|
$this->forecast_conditions_temp = array();
|
||||||
|
$this->forecast_conditions_temp['day_of_week'] = (string)$this->forecast_conditions_value->day_of_week->attributes()->data;
|
||||||
|
$this->forecast_conditions_temp['low'] = (string)$this->forecast_conditions_value->low->attributes()->data;
|
||||||
|
$this->forecast_conditions_temp['high'] = (string)$this->forecast_conditions_value->high->attributes()->data;
|
||||||
|
$this->forecast_conditions_temp['icon'] = $this->prefix_images.(string)$this->forecast_conditions_value->icon->attributes()->data;
|
||||||
|
$this->forecast_conditions_temp['condition'] = (string)$this->forecast_conditions_value->condition->attributes()->data;
|
||||||
|
$this->forecast_conditions []= $this->forecast_conditions_temp;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$this->is_found = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
trigger_error('Google results parse problem : http error '.$getContentCode,E_USER_WARNING);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get URL content using cURL.
|
||||||
|
*
|
||||||
|
* @param string $url the url
|
||||||
|
*
|
||||||
|
* @return string the html code
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function getContent($url)
|
||||||
|
{
|
||||||
|
if (!extension_loaded('curl')) {
|
||||||
|
throw new Exception('curl extension is not available');
|
||||||
|
}
|
||||||
|
|
||||||
|
$curl = curl_init();
|
||||||
|
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
|
||||||
|
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
|
||||||
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
|
||||||
|
curl_setopt($curl, CURLOPT_URL, $url);
|
||||||
|
$this->response = curl_exec($curl);
|
||||||
|
$infos = curl_getinfo($curl);
|
||||||
|
curl_close ($curl);
|
||||||
|
return $infos['http_code'];
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the city
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getCity() {
|
||||||
|
return $this->city;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current weather
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getCurrent() {
|
||||||
|
return $this->current_conditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the forecast weather
|
||||||
|
*/
|
||||||
|
|
||||||
|
function getForecast() {
|
||||||
|
return $this->forecast_conditions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If teh city was found
|
||||||
|
*/
|
||||||
|
|
||||||
|
function isFound() {
|
||||||
|
return $this->is_found;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
$gweather = new GoogleWeatherAPI('nantes','fr'); // "en" also work
|
||||||
|
if($gweather->isFound()) {
|
||||||
|
echo '<pre>'; print_r($gweather->getCity()); echo '</pre>';
|
||||||
|
echo '<pre>'; print_r($gweather->getCurrent()); echo '</pre>';
|
||||||
|
echo '<pre>'; print_r($gweather->getForecast()); echo '</pre>';
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
?>
|
@ -7,6 +7,7 @@
|
|||||||
</item>
|
</item>
|
||||||
<item id="weather">
|
<item id="weather">
|
||||||
<visibility>true</visibility>
|
<visibility>true</visibility>
|
||||||
|
<city>Paris</city>
|
||||||
<x>488</x>
|
<x>488</x>
|
||||||
<y>658</y>
|
<y>658</y>
|
||||||
</item>
|
</item>
|
||||||
|
@ -22,7 +22,8 @@ if($config = simplexml_load_file('db/config.xml')){
|
|||||||
<link rel="stylesheet" type="text/css" href="css/note.css">
|
<link rel="stylesheet" type="text/css" href="css/note.css">
|
||||||
<?}
|
<?}
|
||||||
if ($config_xml[1]->visibility == "true"){
|
if ($config_xml[1]->visibility == "true"){
|
||||||
include 'meteo.php';
|
$city = $config_xml[1]->city;
|
||||||
|
include 'GoogleMeteo.php';
|
||||||
?><script type="text/javascript" src="js/jquery.weather.js"></script>
|
?><script type="text/javascript" src="js/jquery.weather.js"></script>
|
||||||
<link rel="stylesheet" type="text/css" href="css/weather.css"><?
|
<link rel="stylesheet" type="text/css" href="css/weather.css"><?
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ if($xmla->token == '' || $xmla->token == null):?>
|
|||||||
<input type="password" name="password" id="password"/>
|
<input type="password" name="password" id="password"/>
|
||||||
<span id="loginBtn">Cliquez ici pour vous identifier</span>
|
<span id="loginBtn">Cliquez ici pour vous identifier</span>
|
||||||
<div id="error"></div>
|
<div id="error"></div>
|
||||||
|
<span id="todoistRegister">ou <a href="http://todoist.com/Users/showRegister">Cliquez ici</a> pour vous créer un compte (ainsi qu'un projet ;))</span>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
Reference in New Issue
Block a user