Author Topic: Wetter interaktiv zum Bild einbinden  (Read 27085 times)

0 Members and 1 Guest are viewing this topic.

Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Wetter interaktiv zum Bild einbinden
« on: January 17, 2009, 04:05:52 PM »
Hallo zusammen,

wie kann ich das aktuelle Wetter zu einem Bild passend einbinden? ich habe da folgenden ansatz nur an der realisierung hapert es noch:
Ich möchte ein neues Eingabefeld PLZ erstellen (das ist ja nicht schwierig) - doch die ausgabe der Postleitzahl 12345 (in meinem beispiel) soll dann über dieses script erfolgen:

<script type="text/javascript" language="javascript" src="http://www.donnerwetter.de/wetter/net/boxregio.mv?typ=1&plz=12345k&color_bg=FFFFFF&color_hi=FFFFFF&color_txt=&width="></script>
<noscript>JavaScript ist deaktiviert - leider sehen Sie hier kein aktuelles Wetter. <a href="http://www.donnerwetter.de" target="_blank">www.Donnerwetter.de</a></noscript>

oder alternativ noch besser über das google-wetter (wäre meine bevorzugte Lösung)... wobei es dort nicht über die PLZ sondern über die Stadt (Beispiel: City = Wien) erfolgen würde - hier der code hierzu:

Code: [Select]

function google_weather($city)
{

// replace special characters in city name
// Ö->Oe, Ä->Ae, Ü->Ue
// ö->oe, ä->ae, ü->ue
$search = array(”/Ö/”, “/Ä/”, “/Ü/”, “/ö/”, “/ä/”, “/ü/”, “/ /”);
$replace = array(”Oe”, “Ae”, “Ue”, “oe”, “ae”, “ue”, “+”);
$city = trim(preg_replace($search, $replace, $city));

//
// Requesting the weather information from the google weather service.
// The google weather service is available under the following url.
// example http://www.google.com/ig/api?weather=Wien
$url = “http://www.google.com/ig/api?hl=de&weather=” . $city;
$file = file_get_contents($url);
$file = utf8_encode($file);
$wetter = simplexml_load_string($file);

// Requested google weather url
$Data["URL"] = $url;

// general information elements
$Data["stadt"] = utf8_encode($wetter->weather->forecast_information->city->attributes()->data);
$Data["postalcode"] = $wetter->weather->forecast_information->postal_code->attributes()->data;
$Data["datum"] = $wetter->weather->forecast_information->forecast_date->attributes()->data;
$Data["current_time"] = $wetter->weather->forecast_information->current_date_time->attributes()->data;

// Current weather conditions (condition and icon seems to be always empty)
$Data["jetzt_wetter"] = utf8_encode($wetter->weather->current_conditions->condition->attributes()->data);
$Data["jetzt_temp"] = $wetter->weather->current_conditions->temp_c->attributes()->data;
$Data["jetzt_feuchtigkeit"] = $wetter->weather->current_conditions->humidity->attributes()->data;
$Data["jetzt_wind"] = $wetter->weather->current_conditions->wind_condition->attributes()->data;
$Data["jetzt_icon"] = “weather->current_conditions->icon->attributes()->data.”\” />”;

// Today weather conditions
$Data["heute"] = $wetter->weather->forecast_conditions[0]->day_of_week->attributes()->data;
$Data["heute_min"] = $wetter->weather->forecast_conditions[0]->low->attributes()->data;
$Data["heute_max"] = $wetter->weather->forecast_conditions[0]->high->attributes()->data;
$Data["heute_wetter"] = utf8_encode($wetter->weather->forecast_conditions[0]->condition->attributes()->data);
$Data["heute_icon"] = “weather->forecast_conditions[0]->icon->attributes()->data.”\” />”;

// Day 2 weather conditions
$Data["zwei"] = $wetter->weather->forecast_conditions[1]->day_of_week->attributes()->data;
$Data["zwei_min"] = $wetter->weather->forecast_conditions[1]->low->attributes()->data;
$Data["zwei_max"] = $wetter->weather->forecast_conditions[1]->high->attributes()->data;
$Data["zwei_wetter"] = utf8_encode($wetter->weather->forecast_conditions[1]->condition->attributes()->data);
$Data["zwei_icon"] = “weather->forecast_conditions[1]->icon->attributes()->data.”\” />”;

// Day 3 weather conditions
$Data["drei"] = $wetter->weather->forecast_conditions[2]->day_of_week->attributes()->data;
$Data["drei_min"] = $wetter->weather->forecast_conditions[2]->low->attributes()->data;
$Data["drei_max"] = $wetter->weather->forecast_conditions[2]->high->attributes()->data;
$Data["drei_wetter"] = utf8_encode($wetter->weather->forecast_conditions[2]->condition->attributes()->data);
$Data["drei_icon"] = “weather->forecast_conditions[2]->icon->attributes()->data.”\” />”;

// Day 4 weather conditions
$Data["vier"] = $wetter->weather->forecast_conditions[3]->day_of_week->attributes()->data;
$Data["vier_min"] = $wetter->weather->forecast_conditions[3]->low->attributes()->data;
$Data["vier_max"] = $wetter->weather->forecast_conditions[3]->high->attributes()->data;
$Data["vier_wetter"] = utf8_encode($wetter->weather->forecast_conditions[3]->condition->attributes()->data);
$Data["vier_icon"] = “weather->forecast_conditions[3]->icon->attributes()->data.”\” />”;

return $Data;
}


wie kann ich diesen effekt erreichen, dass dann in der detail-ansicht nicht PLz bzw. der stadtname als text ausgegeben wird, sondern dieser komplette code, der dann die gewünschte wetter-grafik ausspuckt?


danke für eure tips!
bergblume


Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #1 on: January 17, 2009, 05:07:56 PM »
... und hast du nicht ein Script, das die Wetterinfo auf der Basis von Longitude und Latitude auswirft ... ?
... das wäre die beste Variante, zumal die Variablen dazu ja bereits für die Google-Map vorhanden sind ...
... sonst müsstest du ein "additional_image_field" für die PLZ bzw. den Stadtnamen einführen ...
... dieses Feld müsste dann aber wiederum bei jedem Bilduplad mit ausgefüllt werden ...
... und das man dann ausließt und sobald ein Eintrag vorhanden ist ... damit dann die Wetterinfo anzeigt ...

... doch wie bereits gesagt ... ein Wetter-Script auf der Basis lon/lat wäre der Idealfall ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #2 on: January 17, 2009, 05:10:13 PM »

... doch wie bereits gesagt ... ein Wetter-Script auf der Basis lon/lat wäre der Idealfall ...


hi mawenzi,

ja klar! da hast du natürlich recht... optimale wäre ein Wetter-Script auf der Basis lon/lat   ich habe schon gegooglt aber bisher leider nichts in der art finden können... daher jetzt der ansatz via PLZ und stadtname...
wenn jmd hier ein Wetter-Script auf der Basis lon/lat kennen sollte, dann bitte wortmeldung, damit dieser MOD gebastelt werden kann.

gruss,
bergblume

Rembrandt

  • Guest
Re: Wetter interaktiv zum Bild einbinden
« Reply #3 on: January 17, 2009, 08:35:35 PM »
Hi!

die idee an sich ist nicht schlecht,
das gesuchten script muß aber die lat/long an die nächste stadt/ort die google bereit hält runden.

ich bilde mir ein das ich so eine liste b.z.w script der 'lat/long  + ort' schon mal wo gesehen habe.

mfg Andi

EDIT: das hier wäre mal ein ansatz.
« Last Edit: January 17, 2009, 08:52:52 PM by Rembrandt »

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #4 on: January 20, 2009, 06:29:41 PM »
... habe gerade auf www.wetter24.de ein nettes Homepagetool für das Wetter gefunden ...
... aber eben leider auch ohne lon- / lat-Wert Eingabe ...
... nun ist mir folgender Gedanke gekommen ...
...
... man könnte sich ja pro deutschem Bundesland z.B. einen Wetterbutton incl. animiertem Radarbild u.s.w. generieren ...
... den jeweiligen Code in einer DB-Tabelle hinterlegen ...
... und beim Bildupload wird ein Dropdown-Menü mit den Bundesländern angeboten ...
... bei Auswahl eines Bundeslandes wird der entsprechende Wetterbutton via DB-Code zum Bild mit angezeigt ...
... ich denke ohnehin, dass eine Wetterangabe genauer als für ein  Bundesland kaum realistisch ist ....

... ? ...

... ich weiß, eine Ausgabe via lon- / lat-Werte wie früher bei www.MuliMap.com möglich, ist immer noch der Idealfall ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #5 on: January 20, 2009, 06:55:21 PM »
hi mawenzi,

danke für deine interessanten gedankengänge...
ich bin ein wenig weiter gekommen was die wetter integration mit lat & lon anbelangt..
basis hierfür ist die google weather API...

denn ich habe mittlerweile herausgefunden, dass hierüber das wetter auch via Lat & Lon ausgegeben wird...
schau mal hier:

http://www.google.com/ig/api?weather=,,,47647075,12098180


47647075 = 47.647075
12098180 = 12,098180
(wichtig ist, dass es immer 8 Stellen sind!!)

gruss,
bergblume

Rembrandt

  • Guest
Re: Wetter interaktiv zum Bild einbinden
« Reply #6 on: January 20, 2009, 07:18:07 PM »
...
denn ich habe mittlerweile herausgefunden, dass hierüber das wetter auch via Lat & Lon ausgegeben wird...
...
nur ein ortsname wird so nicht ausgegeben.

ich habe mich auch mal ein bischen umgesehn und diese datenbank gefunden
darin enthalten sind die ortsnamen mit den dazugehörigen koordinaten.

damit könnte man anhand der koordinaten im bild, das wetter der am nächsten gelegenen stadt anzeigen.

mfg Andi

Edit: wenn ich mir das so überlege, bräuchte man ja einen ortsnamen eigentlich gar nicht.

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #7 on: January 21, 2009, 01:44:06 AM »
@ bergblume ...

... aus deinem oben geposten "google api wetter link" lässt sich prima ein Wetter.Button generieren ...
... doch leider kann ich von meinem Server nicht auf remote xml-files zugreifen ...
... "We don't allow remote file access for security reasons." ...
... Warning: simplexml_load_file() [function.simplexml-load-file]: URL file-access is disabled in the server configuration ...
...
... wenn ich mir den xml-file aber auf meinem Server ablege und dann darauf zugreife ...
... dann sieht mein generierter Google-Wetter-Button für Berlin etwa ... so ... aus ...
... Sackgasse ...
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Rembrandt

  • Guest
Re: Wetter interaktiv zum Bild einbinden
« Reply #8 on: January 21, 2009, 04:38:42 AM »
wieso sackgasse, funktioniert doch.
oder übersehe da etwas?

mfg Andi

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #9 on: January 21, 2009, 09:14:11 AM »
@Rembrandt

... oder übersehe da etwas? ...

... ja ...
... ich wollte eigentlich schon auf die aktuellen Google-xml-Dateien zugreifen, um so auch ständig das aktuelle Wetter zu haben ... ;)
... und wie bereits oben geschildert, kann ich nicht auf "remote files" zugreifen (Serverkonfiguration) ...
... mein Button wird zwar aus einer xml-Datei erzeugt, jedoch einer von gestern Abend, die ich auf meinem Server gespeichert habe ...
... die erforderliche Funktion (php5) "simplexml_load_file()" greift nicht für "remote files" ...
... darum Sackgasse ...
... du kannst ja mal auf deinem Server die Funktion in einer blanken php-Datei testen ...

Code: [Select]
$xml = simplexml_load_file("http://www.google.com/ig/api?weather=,,,47647075,12098180");
if(!($xml)) die("Google-XML-Datei kann nicht geladen werden !");
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Offline bergblume

  • Sr. Member
  • ****
  • Posts: 463
  • on to the top!
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #10 on: January 21, 2009, 11:32:17 AM »
hallo mawenzi,

ja, das schaut soweit schon mal sehr gut bei dir in deinem beispiel aus... wenn das jetzt automatisch tagesaktualisiert wäre, wäre das perfekt...
der ansatz über google ist glaube ich richtig, da hier ja über lat. und long. das wetter ausgegeben werden kann. zudem ist es international. in zusammenarbeit mit alekinna (vielen dank hierfür) habe ich eine lösung für deutschland auf basis der PLZ realisieren können - hier der code falls das für euch von interesse ist...

1. in the file lang/your_lang/main.php

add
Code: [Select]
$lang['weather'] = "Weather";
$lang['weather_format_desc'] = "Insert Zip code. For example:<br />for Erlangen type <b>91054</b>";
$lang['weather_format_error'] = "Incorrect format for field \"weather\"";

2. in the file member.php

find
Code: [Select]
"max_media_imageheight" => $config['max_image_height']."&nbsp;".$lang['px'],
add below
Code: [Select]
"lang_weather_format_desc" => $lang['weather_format_desc'],
2.1 find this code after if ($action == "uploadimage") {
Code: [Select]
if (!empty($additional_image_fields)) {
    foreach ($additional_image_fields as $key => $val) {
      if (isset($HTTP_POST_VARS[$key]) && intval($val[2]) == 1 && trim($HTTP_POST_VARS[$key]) == "") {
        $error = 1;
        $field_error = preg_replace("/".$site_template->start."field_name".$site_template->end."/siU", str_replace(":", "", $val[0]), $lang['field_required']);
        $msg .= (($msg != "") ? "<br />" : "").$field_error;
      }
    }
  }

replace with
Code: [Select]
if (!empty($additional_image_fields)) {
    foreach ($additional_image_fields as $key => $val) {
      if (isset($HTTP_POST_VARS[$key]) && intval($val[2]) == 1 && trim($HTTP_POST_VARS[$key]) == "") {
        $error = 1;
        $field_error = preg_replace("/".$site_template->start."field_name".$site_template->end."/siU", str_replace(":", "", $val[0]), $lang['field_required']);
        $msg .= (($msg != "") ? "<br />" : "").$field_error;
      }
    elseif ($key == "weather") {
        if (isset($HTTP_POST_VARS[$key]) && trim($HTTP_POST_VARS[$key]) != "") {
          if (!ctype_digit($HTTP_POST_VARS[$key])){
            $error = 1;
            $msg .= (($msg != "") ? "<br />" : "").$lang['weather_format_error'];
          }
        }
      }

if field for zip not empty, this code will check if user inserted in only digits and not letters. But it not check count of digits, because I don't know if it may has only 5 digits or more (or less) too.
So just tell me if zip code may has letters and how many charts.

3. in the file member_uploadform.html

use for example
Code: [Select]
          <tr>
            <td class="row2" valign="top"><b>{lang_weather}</b><br />{lang_weather_format_desc}</td>
            <td class="row2"><input type="text" name="weather"  size="30" value="{weather}" class="input" /></td>
          </tr>

4. in the file details.html

use
Code: [Select]
<script src="http://www.weather-world.de/xml/hp3.php?id={weather}&design=1" language="JavaScript"></script>
<noscript><a href="http://www.weather-world.de">Wetter</a></noscript>

5. in the file includes/db_field_definitions.php

add
Code: [Select]
$additional_image_fields['weather'] = array($lang['weather'], "text", 0);
6. new value in DB

do changes if need and use the code below
varchar(10) - zip code may be up to 10 charts
DEFAULT '91054' - default value for all images, when user insert his zip, it will be overwrite with new value

Code: [Select]
ALTER TABLE `4images_images` ADD `weather` varchar(10) NOT NULL DEFAULT '91054'


aber wie gesagt... international auf basis von latitude und longitude wäre das der oberhammer...

gruss,
bergblume

Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #11 on: January 21, 2009, 11:53:05 AM »
@bergblume

... das ist die Lösung wie unter "Antwort1" beschrieben ... ;)
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Rembrandt

  • Guest
Re: Wetter interaktiv zum Bild einbinden
« Reply #12 on: January 21, 2009, 06:42:37 PM »
Hi!

geht ja doch.

bitteschön, das momentane wetter von 'Wien'

mfg Andi

Code: [Select]
<?php

$url 
'http://www.google.com/ig/api?weather=,,,48209206,16372778&hl=de'//Hier kann man die Sprache und die Stadt verändern. ö->oe, ä->ae, ü->ue
$file implode(file($url));
$wetter preg_split('/"/'$file, -1PREG_SPLIT_NO_EMPTY);

$stadt $wetter[9];
$postalcode $wetter[11];
$datum $wetter[15];
$current_time $wetter[17];

$jetzt_wetter $wetter[21];
$jetzt_temp $wetter[25];
$jetzt_feuchtigkeit $wetter[27];
$jetzt_icon "http://www.google.com/$wetter[29]";
$jetzt_wind $wetter[31];

$heute $wetter[33];
$heute_min $wetter[35];
$heute_max $wetter[37];
$heute_icon "http://www.google.com/$wetter[39]";
$heute_wetter $wetter[41];

$zwei $wetter[43];
$zwei_min $wetter[45];
$zwei_max $wetter[47];
$zwei_icon "http://www.google.com/$wetter[49]";
$zwei_wetter $wetter[51];

$drei $wetter[53];
$drei_min $wetter[55];
$drei_max $wetter[57];
$drei_icon "http://www.google.com/$wetter[59]";
$drei_wetter $wetter[61];

$vier $wetter[63];
$vier_min $wetter[65];
$vier_max $wetter[67];
$vier_icon "http://www.google.com/$wetter[69]";
$vier_wetter $wetter[71];


//echo "$stadt<br>";
//echo "$postalcode<br>";
echo "$datum<br>";
echo 
"$current_time<br>";
echo 
"$jetzt_wetter<br>";
echo 
"$jetzt_temp °C<br>";
echo 
"$jetzt_feuchtigkeit<br>";
echo 
"$jetzt_wind<br>";
?>


Offline mawenzi

  • Moderator
  • 4images Guru
  • *****
  • Posts: 4.500
    • View Profile
Re: Wetter interaktiv zum Bild einbinden
« Reply #13 on: January 21, 2009, 07:20:09 PM »
... es kann sich glücklich schätzen, auf dessen Server die folgenden Funktionen für "externe Dateien" nicht deaktiviert sind ...

- simplexml_load_file()
- simplexml_load_string()
- @fsockopen()
- file_get_contents()
- implode()

... zumindest eine diese Funktion wäre nötig, um eine externe xml-Datei einzulesen ...
... auf vielen Servern sind diese Funktionen aber aus "Sicherheitsgründen" deaktiviert ...

@Rembrandt
... die Funktion implode() scheint ja bei dir zu laufen, ein Link auf deine Wetter-Datei wäre nett ...
... hast du auch Zugriff auf "simplexml_load_file()" oder eine andere dieser Funktionen ... ?
... dann hätte ich eventuell noch eine Idee, wie du andere User glücklich machen könnest ... ;)
... Interesse ... ?
« Last Edit: January 21, 2009, 07:51:28 PM by mawenzi »
Your first three "must do" before you ask a question ! ( © by V@no )
- please read the Forum Rules ...
- please study the FAQ ...
- please try to Search for your answer ...

You are on search for top 4images MOD's ?
- then please search here ... Mawenzi's Top 100+ MOD List (unsorted sorted) ...

Rembrandt

  • Guest
Re: Wetter interaktiv zum Bild einbinden
« Reply #14 on: January 21, 2009, 07:59:35 PM »
Hi!

funktioniert es bei dir nicht?

edit: sehe gerade das es am funpic nicht funktioniert  :cry:
« Last Edit: January 23, 2009, 08:24:06 AM by Rembrandt »