[ anon33851 @ 11.04.2012. 00:22 ] @
Potrebna vremenska prognoza Srbije za WP (widget). Probao sam nekoliko pluginova (Weather and Weather Forecast Widget, My Weather, WP Wunderground...) ali ni jedan neodgovara ili neradi.
Traba mi prognoza kao na sajtu www.telegraf.rs. Nije problem ako je na engleskom da je prevedem. Takodje je pozeljno da se prognoza prikazuje za onaj deo Srbije odakle je posetilac sajta (znam da je to delimicno ograniceno nasim serverima-provajderima).
Ako neko ima neki predlog (plugin) veoma bi mi znacilo.
Unapred hvala
[ cyBerManIA @ 11.04.2012. 04:22 ] @
Najlaksi nacin ti je da iframeujes u HTML widget RSS odgovor na yahoo weather API zahtev.
Za Beograd je npr: http://weather.yahooapis.com/forecastrss?w=532697&u=c i dobijes fin xml, cak i sa slikom, ali i sa linkovima.
Brojka predstavlja lokaciju, dok u=c sluzi za predstavljanje temperature u C. Mozes da dodas jos parametara.

Ako zelis nesto finije, mozes da koristis produzenu verziju API-a sa YQLom (yahoo query language).
Tipa, mozes da pretrazujes po koordinatama ili po nazivu grada:

Code:
use 'http://github.com/yql/yql-tabl...weather/weather.bylocation.xml' as we;
select * from we where location="belgrade" and unit='c'

Odgovor mozes da dobijes i kao xml i kao json.

Naziv grada mozes da dobijes putem IP adrese na razne nacine, a mozes da koristis i YQL:

Code:
select * from pidgets.geoip where ip='127.0.0.1'


Iz svih ovih odgovora uzimas samo ono sto ti treba i sto bi prikazao, sto kasnije obradis kako ce da se prikaze na frontendu.

Cisto da znas YQL query limit:
Citat:
Usage Limits

Per application limit (identified by your Access Key): 100,000 calls per day
Per IP limits: /v1/public/*: 2,000 calls per hour; /v1/yql/*: 20,000 calls per hour

[ ivan.a @ 12.04.2012. 12:42 ] @
Evo plugina koji sam davno radio. Napravi folder vremenska_prognoza i zatim napravi fajl vremenska_prognoza.php u okviru tog foldera sa sledećim sadržajem:

Code:
<?php
/*
Plugin Name: Vremenska Prognoza
Plugin URI: http://gameinfusion.net
Description: Widget koji pokazuje vremensku prognozu preko google servisa.
Author: Ivan Antonijevic
Version: 1.0
Author URI: http://gameinfusion.net
*/
function widget_Forecast_init() {
    if ( !function_exists('register_sidebar_widget') )
        return;
        function widget_ForecastWidget($args) {
        //$cat_id = get_query_var('cat');
        $fajl = ABSPATH.'wp-content/plugins/vremenska_prognoza/vp_cache.php';
        $putanja = ABSPATH.'wp-content/plugins/vremenska_prognoza/';
        $http_putanja = plugins_url('vremenska_prognoza/');
        $test = end(explode("/",$fajl) );
        //file_put_contents($fajl, $http_putanja );
        if (file_exists($fajl) AND time() - 3600*2 < filemtime($fajl)) {
        include($fajl);
        } else {
        extract($args);        
        $options = get_option('widget_ForecastWidget');
        //$title = $show = $options['title'];
        $show = $options['show'];  // # pod-kategorija
        if (empty($show)) $show = "belgrade";
        // Output
        //echo $before_widget . $before_title .$title . $after_title;
        global $xml;
        if (isset($_GET["lang"]) AND $_GET["lang"]=="en") $pref = '';
        else $pref = '&hl=sr';
        $xml = @sxe('http://www.google.com/ig/api?weather='.$show.$pref);
        //$xml = @file_get_contents('http://www.google.com/ig/api?weather='.$show.'&hl=sr');
        $current = $xml->xpath("/xml_api_reply/weather/current_conditions");
        $condition = strtolower($current[0]->condition['data']);
        $cond_title = $current[0]->condition['data'];
        if (!empty($cond_title) ) {
        $title = "<div class='widgettitle'>Vremenska prognoza</div>";
        
        $ikonica = end( explode("/", $current[0]->icon['data']) );
        if (!file_exists($putanja.$ikonica) ) {
        $cache_ikonica = file_get_contents("http://www.google.com".$current[0]->icon['data']."");
        file_put_contents($putanja.$ikonica, $cache_ikonica);
        }
        
        $putanja_do_ikonice = $http_putanja.$ikonica;
        
        $html = '<li><?php _e($title) ?>
        <table>
         <tr>
            <td width="40"><img width="40" height="40" src="'.$putanja_do_ikonice.'"  alt="weather" /></td>
            <td valign="top">
            <div style="text-align: left;">
               <b>'.$current[0]->temp_c['data'].'&deg;C</b> '.$cond_title.'
               <div>'.$current[0]->humidity['data'].'</div>
               <div>'.$current[0]->wind_condition['data'].'</div>
            </div>
            </td>
         </tr>
        </table>
        </li>
        ';
        
        file_put_contents($fajl, $html);
        ?>
        <li>
        <?php _e($title); ?>
        <table>
         <tr>
            <td width="40"><img width="40" height="40" src="http://www.google.com<?php echo $current[0]->icon['data']; ?>"  alt="weather" /></td>
            <td valign="top">
            <div style="text-align: left;">
               <b><?php echo $current[0]->temp_c['data']; ?>&deg;C</b> <?php echo $cond_title; ?>
               <div><?php echo $current[0]->humidity['data']; ?></div>
               <div><?php echo $current[0]->wind_condition['data']; ?></div>
            </div>
            </td>
         </tr>
        </table>
        </li>
        
        <?php } ?>
        <?php

        }
    }
    // Forma
    function widget_ForecastWidget_control() {
        // Opcije
        $options = get_option('widget_ForecastWidget');
        if ( !is_array($options) )
            $options = array('title'=>'Vremenska Prognoza', 'show'=>'belgrade');
        // forma poslata?
        if ( $_POST['Forecast-submit'] ) {
            //$options['title'] = strip_tags(stripslashes($_POST['myRecentPosts-title']));
            $options['show'] = strip_tags(stripslashes($_POST['ForecastCity']));
            update_option('widget_ForecastWidget', $options);
        }
        $title = htmlspecialchars($options['title'], ENT_QUOTES);
        $show = htmlspecialchars($options['show'], ENT_QUOTES);
        // Polja u formi
        ?>    
           <p style="text-align:left;">
                <label for="ForecastCity"><?php echo __('Naziv grada:') ?>
                <input style="width: 200px;" id="Forecast-show" name="ForecastCity" type="text" 
                value="<?php echo $show; ?>" />
                </label></p>
                
        <input type="hidden" id="Forecast-submit" name="Forecast-submit" value="belgrade" />
        
        <?php
    }
    // Dodavanje widgeta kako bi mogao da se koristi
    register_sidebar_widget(array('Vremenska prognoza', 'widgets'), 'widget_ForecastWidget');
    // Dodavanje forme za widget
    register_widget_control(array('Vremenska prognoza', 'widgets'), 'widget_ForecastWidget_control', 300, 200);
}
// Inicijalizacija
add_action('widgets_init', 'widget_Forecast_init');

function sxe($url)
{
    $xml = file_get_contents($url);
    foreach ($http_response_header as $header)
    {   
        if (preg_match('#^Content-Type: text/xml; charset=(.*)#i', $header, $m))
        {   
            switch (strtolower($m[1]))
            {   
                case 'utf-8':
                    // do nothing
                    break;

                case 'iso-8859-1':
                    $xml = utf8_encode($xml);
                    break;

                default:
                    $xml = iconv($m[1], 'utf-8', $xml);
            }
            break;
        }
    }

    return simplexml_load_string($xml);
}
?>


Uploaduj u folder wp-content/plugins/ i aktiviraj widget. Inače, ovaj plugin koristi google servis i kešira slike i podatke na svaka 2 sata.
[ anon33851 @ 14.04.2012. 01:58 ] @
@ivan.a
Probao sam plugin, medjutim prijavljuje greske u widget side baru, ali na sajtu prikazuje trenutnu prognozu za Beograd. Moja greska je sto sam zaboravio da napisem verziju WP, 3.3.1

@cyBerManIA
Druze hvala ti na detaljnom objasnjenju, ali ja sam laik sto se tice php-a. Razumeo sam kako funkcionise ali implementacija je za mene visa nauka. Iz tog razloga sam i trazio neko vec gotovo resenje (plugin).

Potrebna mi je prognoza za 4-5 dana unapred i ako je moguce da automatski odredi grad posetioca.

U svakom slucaju cenim vasu pomoc.
Hvala
[ sognum14 @ 17.04.2012. 11:15 ] @
Evo ti odlicna vremenska prognoza http://freemeteo.com/default.asp?pid=183&la=1 za nekoliko dana unapred i jednostavno se dobija jedan maili iframe i taj kod kopiras u svoju stranicu ili sidebar
[ MTodorovic @ 15.10.2012. 22:39 ] @
Evo isto domaćeg widgeta za najveće gradove u Srbiji, http://www.tt-group.net/vremen...geti-za-vremenske-prognoze.php