• 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


  • JCI: 20.000, Update: twig-extension für JSON-Sortierung, rawpost etc.

    "JSON Content Importer" WordPress Plugin

    Kurz vor Weihnachten habe ich ein Update der PRO-Version meines WordPress-Plugins “JSON Content Importer” herausgebracht. Zudem hat die kostenlose Version die Marke von 20.000 Downloads überschritten.
    Im Details habe ich Anforderungen der PRO-Nutzer eingebaut, die aus der ganzen Welt bei mir eintrafen (BTW: Für das Handling der Kundenanfragen benutze ich https://freshdesk.com seit Kurzem – es erscheint mir als echte Hilfe den Überblick zu bewahren):

    • Die Templateengine twig enthält leider keine Befehle mit der man richtig sortieren kann:

      sort ist ok, aber nicht mächtig genug zum Sortieren von JSON-Datenbäumen. Daher habe ich eine twig-extension in das Plugin eingebaut, mit der eine passende Syntax möglich wird.
    • Wenn man eine API anzapft, holt man per HTTP die JSON-Daten. Das erfolgt zumeist mittels GET, manchmal per POST. Bisher nutzte das Plugin die in WordPress dafür eingebauten Funktionen wie wp_remote_get. Manche APIs reagieren aber sehr sensibel auf Anfragen. Daher war es nun nötig, in das Plugin einzubauen, dass man die direkten PHP-GET/POST Funktionen (file_get_contents) nutzen kann.

      Beispiel: http://api.json-content-importer.com/api-pricing-api-viajanet-com-br-json-sort-and-post/
    • Verfasst man in WordPress Artikel, so ist das mit dem WordPress-Editor so eine Sache. Im Zusammenhang mit dem JSON Content Importer-Plugin sollte man nur den Text-Modus verwenden (und auch nicht mal so eben zum HTML-/WYSIWYG-Editor hin- und dann wieder zurückschalten – der Editor zerstört ggf. den Code). In der PRO-Version empfiehlt sich die Nutzung des Template-Managers. Wer aber dennoch im WordPress-Texteditor testen will, der kann das mit der Version 3.3.0 nun besser: Einerseits kann man wpautop nun wirksam ausschalten (ohne das wurden Zeilenumbrüche im Editor in HTML-Zeilenumbrüche im Ergebnis eingefügt). Andererseits werden Anführungszeichen im twig-code vom WordPress-Editor nun nicht mehr in HTML umgewandelt (was den twig-code zerstört). D.h. man kann nun besser twig-code im WordPress-Editor (statt im TemplateManager) entwickeln.
  • Datum und Zeit in München

    30.09.2026 02:51


    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