• JSON, XML und WordPress

    Google Trends: JSON löst XML ab


    Es gab mal eine Zeit, in der XML das klar dominierende Format war, mit dem man Daten austauschte. Seit Mai 2016 hat aber laut GoogleTrends JSON die Nase vorne.
    Daher baute ich mein WordPress-Plugin auf für JSON-APIs. Mit der neuesten Version 3.3.4 unterstützt das Plugin aber auch XML-APIs: Softwaretechnisch ist das relativ einfach, da PHP mit simplexml_load_string einen XML-String in ein Objekt verwandeln kann und json_encode einen JSON-String daraus macht. Was für ein JSON aus dem XML wurde, erkennt der geneigte Pluginnutzer durch Einschalten des Debugmodus.

  • JCI und Google-Spreadsheets

    twig-code


    Google bietet mit den Google-Spreadsheets auf dem Google-Drive eine Möglichkeit, “Excel online zu haben”. Wenn man diese Daten in WordPress anzeigen will kann man das mit meinem WordPress-Plugin “JSON Content Importer” tun. Ganz konkret:

  • twig-Erweiterung für WordPress-Plugin

    "JSON Content Importer" WordPress Plugin

    Kernelement der PRO-Version meines WordPress-Plugins JSON Content Importer ist die Template-Engine twig, die auch in Symfony2-PHP-Framework zum einsatz kommt. Von Haus aus kann twig schon einiges, manches leider aber nicht.

    Konkret vermisste ich die Mögichkeit, Datum- und Zeitangaben möglichst flexibel einzustellen. Denn ein niederländischer Kunde meines Plugins wollte die niederländische Wochentags-Bezeichnung anzeigen. Damit das möglich ist, habe ich eine Erweiterung für twig geschrieben, die in Aktion wie folgt aussieht:

    {{ zeit |
    dateformat('%A %m/%d/%y %H:%M:%S', 'Europe/Berlin', 'nl_NL') }}
    

    Das Ergebnis kann man hier sehen: Die Namen der Wochentage sind in niederländischer Sprache angezeigt.

    (more…)
  • Flugverkehr über München

    Flugbewegungen über München: Dargestellt in WordPress mit diversen Plugins und APIs

    Mit zwei WordPress-Plugins und einer geeigneten Datenquelle kann man den Flugverkehr über München, ja überall in der Welt, auf seiner Website darstellen.
    Und das geht so:

    1. Installiere die WordPress-Plugins Flexible Map und mein Plugin JSON Content Importer in der PRO-Version (sorry, das kostet leider)
    2. Hole Dir bei Google einen API key für Deine Website: Das ist nötig, da Google seine Karten nur zur Verfügung stellt, wenn man sich dort einträgt.

      Den API-Schlüssel musst Du in den Optionen des Plugins Flexible Maps eintragen und speichern.

    3. Füge folgenden twig-code in den Template-Manager des Plugins JSON Content Importer ein. Durch das Abspeichern bekommst Du eine ID für diesen Template-Baustein:
    <?xml version="1.0" encoding="UTF-8"?>
    <kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
    <Style id="jcistylemucland">
    <IconStyle>
    <Icon>
    <href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png
    </href>
    </Icon>
    </IconStyle>
    </Style>
    <Style id="jcistylemucstart">
    <IconStyle>
    <Icon>
    <href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png
    </href>
    </Icon>
    </IconStyle>
    </Style>
    <Style id="jcistyle">
    <IconStyle>
    <Icon>
    <href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png
    </href>
    </Icon>
    </IconStyle>
    </Style>
    {% for f in acList %}
    <Placemark>
    <name>
    <![CDATA[
    {{f.Op}} {{f.Mdl}}: {{f.Id}}
    ]]></name>
    {% if f.From=="EDDM Munich, Germany" %}
    <styleUrl>#jcistylemucstart</styleUrl>
    {% elseif f.To=="EDDM Munich, Germany" %}
    <styleUrl>#jcistylemucland</styleUrl>
    {% else %}
    <styleUrl>#jcistyle</styleUrl>
    {% endif %}
    <description>
    <![CDATA[
    PosTime: {{ (f.PosTime // 1000) | date('d.m.Y H:i') }}
    Alt: {{f.Alt}}
    {% if f.From is not empty %}
    From: {{f.From}}
    To: {{f.To}}
    {% endif %}
    ]]></description>
    <Point>
    <coordinates>{{f.Long}},{{f.Lat}}</coordinates>
    </Point>
    </Placemark>
    {% endfor %}
    </Document>
    </kml>
    
  • Erstelle eine neue Seite oder einen neuen Blogpost mit folgendem Code (lat und lng sind die georaphischen Daten für München). Diese Seite wird den neuen, sogenannten KML-Feed enthalten, den Google Maps als Input benötigt:
  • [[jsoncontentimporterpro url=https://public-api.adsbexchange.com/VirtualRadar/AircraftList.json?lat=48.137154&lng=11.576124&fDstL=0&fDstU=100 parser=twig id=ID_TEMPLATE_MANAGER]]
  • Veröffentliche diese Seite und schau sie dir im Browser an. Hier im Beispiel: https://www.kux.de/kml-feed-munich/.
    Füge an der URL hinten “?show=oc” an, dadurch sollte sich die Optik deutlich reduzieren: https://www.kux.de/kml-feed-munich/?show=oc. Über http://googlemapsapi.blogspot.de/2007/06/validate-your-kml-online-or-offline.html kann man sicherstellen, dass der KML-Feed korrekt ist.
  • Was tun, wenn der KML-Feed nicht ok ist?
    Ein Grund kann sein, dass WordPress dazwischenfunkt und Extrazeichen einfügr (Stichwort wpautop). Hier versuche in den Optionen des Plugins JSON Content Importer unter “Options” und dann “Settings” bei “Use wpautop or not:” wähle “remove wpautop”.

    Oder: Wenn eine andere API verwendet wird, muss man entsprechend den twig-Code ändern, der die Daten der API nimmt und in KML-XML konvertiert.
  • Erstelle eine weitere neue Seite, auf dem Du Google-Maps und die Daten zusammenbringst: Wenn Du diese Seite ansiehst sollten die Flugbewegungen über München auf der Karte zu sehen sein. Alle 5 Minuten bringt ein Reload der Seite neue Daten (5 Minuten ist die Zeit, die Google Maps solche Daten zwischenspeichert, mit weiterne Tricks könnte man das “umgehen”).
    Also, bitte folgenen Code auf die Seite:
  • [[flexiblemap src="https://www.kux.de/kml-feed-munich/?show=oc" kmlcache="5 minutes" zoom="7"]]
  • Here we go:
    Start in München


    Landung in München


    Überflug München oder unbekannter Start / Landung


Datum und Zeit in München

05.10.2026 10:02


Daten von einer API werden mittels Live Data Display aktualisiert eingeblendet.

Bernhard Kux – Aktuelles, Projekte, Über mich
LinkedIn

Webinar-Showtime:

Cyber Resilience Act: Wie Unternehmen künftig sicherere Soft und Hardware beschaffen können

Offene Tickets Wordpress.org-Plugin-Support

PRO-Support


get-url-cron

  • Kein offenes Ticket

auto-refresh-api-ajax

  • Kein offenes Ticket

wp-memory-usage

  • Kein offenes Ticket

json-content-importer

  • Kein offenes Ticket

Pack ma’s digital