From 6d0060111afed6e587e5410a9495bd0140219a6d Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Wed, 29 Aug 2012 12:55:32 +0000
Subject: [PATCH] Dodanie informacji o pogodzie pod wyświetlanymi ikonami w module pogoda.

---
 modules/30_pogoda/api_yrno.php |   28 ++++++++++++++--------------
 modules/30_pogoda/handler.php  |   19 ++++++++++++++-----
 2 files changed, 28 insertions(+), 19 deletions(-)

diff --git a/modules/30_pogoda/api_yrno.php b/modules/30_pogoda/api_yrno.php
index 70e3b5a..d10944e 100644
--- a/modules/30_pogoda/api_yrno.php
+++ b/modules/30_pogoda/api_yrno.php
@@ -3,7 +3,7 @@
 	protected $xml;
 	protected $dane;
 	
-	var $symbols = array(
+	static $symbols = array(
 		1 => 'Słonecznie',
 		2 => 'Lekkie zachmurzenie',
 		3 => 'Częściowe zachmurzenie',
@@ -29,7 +29,7 @@
 		23 => 'Deszcz ze śniegiem, burze'
 	);
 	
-	var $wind = array(
+	static $wind = array(
 		'N' => 'północny',
 		'NW' => 'północno-zachodni',
 		'W' => 'zachodni',
@@ -39,6 +39,16 @@
 		'E' => 'wschodni',
 		'NE' => 'północno-wschodni',
 	);
+	
+	static function wind($dir) {
+		if(isset(self::$wind[$dir])) {
+			return self::$wind[$dir];
+		}
+		else
+		{
+			return '';
+		}
+	}
 	
 	function __construct($xml) {
 		libxml_use_internal_errors();
@@ -52,16 +62,6 @@
 	
 	function mktime($time) {
 		return strtotime(substr($time, 0, -1));
-	}
-	
-	function wind($dir) {
-		if(isset($this->wind[$dir])) {
-			return $this->wind[$dir];
-		}
-		else
-		{
-			return '';
-		}
 	}
 	
 	function parseForecast() {
@@ -96,8 +96,8 @@
 				}
 				
 				$icon = (int)$time->symbol->attributes()->number;
-				if(is_int($this->symbols[$icon])) {
-					$icon = $this->symbols[$icon];
+				if(is_int(self::$symbols[$icon])) {
+					$icon = self::$symbols[$icon];
 				}
 				
 				$this->dane[$put][$to] = array(
diff --git a/modules/30_pogoda/handler.php b/modules/30_pogoda/handler.php
index 3a71211..40a1691 100644
--- a/modules/30_pogoda/handler.php
+++ b/modules/30_pogoda/handler.php
@@ -73,13 +73,14 @@
 		
 		$out->a('<p>Pogoda dla '.htmlspecialchars($loc['name']).', '.htmlspecialchars($loc['countryName']).'.</p>'."\n\n");
 		
-		$icon = $api->symbols[$api->getCurrentIcon()];
+		$icon = (int)$api->getCurrentIcon();
 		$weather = $api->getCurrentWeather();
 		
 		$out->a('<p><b>Teraz</b><br />'."\n"
-			. $icon.'<br />'."\n"
+			. '<img src="./data/pogoda/'.$icon.'.png" />'."\n"
+			. api_yrno_parse::$symbols[$icon].'<br />'."\n"
 			. 'Temp.: '.htmlspecialchars($weather['temp']).'°C<br />'."\n"
-			. 'Wiatr: '.htmlspecialchars($weather['wind']).' km/h, '.$api->wind($weather['wind']).'<br />'."\n"
+			. 'Wiatr: '.htmlspecialchars($weather['wind_speed']).' km/h, '.api_yrno_parse::wind($weather['wind_direction']).'<br />'."\n"
 			. 'Ciśnienie: '.htmlspecialchars($weather['pressure']).' hPa</p>'."\n\n");
 		
 		$when = time();
@@ -104,12 +105,20 @@
 	
 	function getHTMLforWeather($name, $icons, $weather) {
 		$html = '<p><b>'.$name.'</b><br />'."\n";
+		$desc = array();
+		$curr = 0;
 		foreach($icons as $icon) {
-			if(is_file('./data/pogoda/'.htmlspecialchars($icon).'.png')) {
-				$html .= '<img src="./data/pogoda/'.htmlspecialchars($icon).'.png" alt="" /> ';
+			$icon = (int)$icon;
+			if(is_file('./data/pogoda/'.$icon.'.png')) {
+				$html .= '<img src="./data/pogoda/'.$icon.'.png" alt="" /> ';
+				if($icon != $curr) {
+					$desc[] = api_yrno_parse::$symbols[$icon];
+					$curr = $icon;
+				}
 			}
 		}
 		$html .= '<br />'."\n"
+			. implode(' / ', $desc).'<br />'."\n"
 			. 'Temp.: '.$this->getHTMLforRange($weather['temp']['day']).'°C (w nocy: '.$this->getHTMLforRange($weather['temp']['night']).'°C)<br />'."\n"
 			. 'Wiatr: '.$this->getHTMLforRange($weather['wind']['day']).' km/h (w nocy: '.$this->getHTMLforRange($weather['wind']['night']).' km/h)</p>'."\n\n";
 		

--
Gitblit v1.9.1