Skip to main content

🔧 4. Erweiterungen & Integration

Ziel dieser Seite

Diese Seite beschreibt ergänzende Funktionen, Hilfsroutinen und Integrationsbeispiele zur Nutzung des Snippets dwdWeather in 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:43 in 18:00 um.
  • 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 dwdWeather lä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.