Jacek Kowalski
2012-08-29 6d0060111afed6e587e5410a9495bd0140219a6d
Dodanie informacji o pogodzie pod wyświetlanymi ikonami w module pogoda.
2 files modified
47 ■■■■■ changed files
modules/30_pogoda/api_yrno.php 28 ●●●● patch | view | raw | blame | history
modules/30_pogoda/handler.php 19 ●●●● patch | view | raw | blame | history
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(
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";