🔧 4. Erweiterungen & Integration
Ziel dieser Seite
Diese Seite beschreibt ergänzende Funktionen, Hilfsroutinen und Integrationsbeispiele zur Nutzung des Snippets
dwdWeatherin MODX. Sie zeigt, wie sich das Snippet erweitern, optimieren und mit anderen Inhalten wie Kalendern kombinieren lässt.
Erweiterung: Zeitkorrektur getTimeRoundH
Die Hilfsfunktion getTimeRoundH() dient zur Rundung von Zeitwerten auf volle Stunden.
Sie wird intern vom Snippet genutzt, kann aber auch separat eingebunden werden.
Beispielcode
function getTimeRoundH($t) {
$h = date("H", $t);
$m = date("i", $t);
if ($m > 29) $h++;
if ($h == 24) $h = 0;
return sprintf("%02d:00", $h);
}
Zweck
- Wandelt Zeitwerte wie
2025-10-29 17:43in18:00um. - Erleichtert Vergleich und Filterung von MOSMIX-Zeiten (
T1–T4).
Erweiterung: Temperatur-Umrechnung
Einige MOSMIX-Parameter liefern Werte in Kelvin.
Zur Anzeige in °C wird intern folgender Umrechnungsfaktor verwendet:
$C = $K - 273.15;
💡 Hinweis
Falls eigene Rechenlogik verwendet wird (z.B. für spezielle Ausgaben), kann dieser Faktor in das Snippet integriert oder über eine Config-Variable bereitgestellt werden.
Erweiterung: Icon-Auswahl
Für jedes Wetterereignis (Parameter ww) wird ein Icon aus assets/dwd_img/ geladen.
Die Zuordnung erfolgt über ein internes Mapping (Array strConditions_de).
Beispiel:
| ww | Beschreibung | Icon |
|---|---|---|
| 0 | Klar / wolkenlos | ww_0.png |
| 3 | Leicht bewölkt | ww_3.png |
| 45 | Nebel | ww_45.png |
| 61 | Regen | ww_61.png |
| 71 | Schnee | ww_71.png |
| 95 | Gewitter | ww_95.png |
🌤️ Tipp
Eigene Icons können einfach durch Austausch der Dateien im Ordner
assets/dwd_img/eingebunden werden.
Wichtig ist nur, dass der Dateiname (ww_xx.png) mit dem jeweiligen Wettercode übereinstimmt.
Integration: Kalenderanzeige
Ein beliebtes Einsatzszenario ist die Integration in eine Kalenderansicht (z.B. was-gibts).
Beispielstruktur
<div class="calendar-day">
<span class="date">[[+pubDateDay]]</span>
<span class="temp">[[+fc5]]°C</span>
<img src="[[+fc17]]" alt="[[+fc16]]">
</div>
Damit lassen sich tägliche Wetterwerte (z.B. Temperatur oder Niederschlag) direkt im Kalender anzeigen.
Integration: Mehrere Stationen
Du kannst mehrere Stationen (z.B. verschiedene Städte) parallel abfragen, indem du das Snippet mehrfach aufrufst:
[[!dwdWeather? &STATION=`10609` &TPL=`dwdWetterTPL`]]
[[!dwdWeather? &STATION=`K428` &TPL=`dwdWetterTPL`]]
[[!dwdWeather? &STATION=`10513` &TPL=`dwdWetterTPL`]]
💡 Hinweis
Um Serverlast zu vermeiden, sollte bei mehreren Stationen ein Caching-Mechanismus aktiv sein.
Integration: Kombination mit MODX-Extras
Das Snippet kann mit anderen MODX-Extras kombiniert werden, z.B.:
| Extra | Verwendung |
|---|---|
| getCache | Zwischenspeicherung der Wetterausgabe |
| getResources | Kombinierte Anzeige von Artikeln + Wetter |
| pdoResources | Dynamische Darstellung nach Regionen |
| FormIt | Weiterleitung der Wetterdaten in Formulare (z.B. für Eventplanung) |
Styling-Hinweis
Für eine klare Darstellung empfiehlt sich ein einfaches CSS-Grundlayout:
.dwd-weather { display: flex; flex-wrap: wrap; gap: 10px; }
.dwd-weather .label { padding: 2px 6px; border-radius: 4px; }
.dwd-weather .label.blue { background: #3a7bd5; color: #fff; }
.dwd-weather .label.red { background: #e63946; color: #fff; }
🎨 Tipp
Mit CSS-Grid oder Flexbox lassen sich responsive Wetterübersichten leicht realisieren.
Icons können per Filter (invert,drop-shadow, etc.) an den Seitenstil angepasst werden.
Zusammenfassung
- Hilfsfunktionen: Zeit- und Temperaturelemente können angepasst werden.
- Integration: Ideal für MODX-Extras, Kalender oder Dashboard-Anzeigen.
- Design: Frei gestaltbar mit CSS, keine festen Strukturen.
💡 Hinweis zur Aktualisierung
Das Snippet
dwdWeatherlädt MOSMIX-Dateien nur bei Bedarf:
- Pro Stunde wird maximal eine Datei pro Station gespeichert.
- Existiert bereits eine aktuelle Datei, erfolgt kein neuer Download.
Dadurch aktualisiert sich das Snippet automatisch bei Seitenaufrufen –
ein separater Cronjob ist nicht erforderlich.Da der DWD neue MOSMIX-Daten alle 6 Stunden bereitstellt,
reicht es völlig aus, wenn deine Seite hin und wieder aufgerufen wird –
das Snippet erkennt selbst, wann eine neue Version geladen werden muss.