Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

WordPress - vremenska prognoza

[es] :: Web aplikacije :: WordPress - vremenska prognoza

[ Pregleda: 6676 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon33851

Član broj: 33851
Poruke: 65
*.dynamic.isp.telekom.rs.



Profil

icon WordPress - vremenska prognoza11.04.2012. u 00:22 - pre 145 meseci
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
 
Odgovor na temu

cyBerManIA
I ovo T ono
Space

Član broj: 25195
Poruke: 698
*.ptt.rs.

Sajt: www.facebook.com/cyberman..


+263 Profil

icon Re: WordPress - vremenska prognoza11.04.2012. u 04:22 - pre 145 meseci
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


 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.static.isp.telekom.rs.



+44 Profil

icon Re: WordPress - vremenska prognoza12.04.2012. u 12:42 - pre 145 meseci
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.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

anon33851

Član broj: 33851
Poruke: 65
*.dynamic.isp.telekom.rs.



Profil

icon Re: WordPress - vremenska prognoza14.04.2012. u 01:58 - pre 145 meseci
@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
 
Odgovor na temu

sognum14

Član broj: 301410
Poruke: 3
*.ptt.rs.



Profil

icon Re: WordPress - vremenska prognoza17.04.2012. u 11:15 - pre 145 meseci
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
 
Odgovor na temu

MTodorovic
Milan Todorovic
Inzenjer
Beograd

Član broj: 158261
Poruke: 163
178.79.15.*

Sajt: www.tt-group.net


+8 Profil

icon Re: WordPress - vremenska prognoza15.10.2012. u 22:39 - pre 139 meseci
Evo isto domaćeg widgeta za najveće gradove u Srbiji, http://www.tt-group.net/vremen...geti-za-vremenske-prognoze.php
TT Group prognoza |
Billing-systems.net |
SeoExpert.rs/ za optimizaciju na pretraživačima|
Filmovi7
 
Odgovor na temu

[es] :: Web aplikacije :: WordPress - vremenska prognoza

[ Pregleda: 6676 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.