Poor Man Push – WordPress Plugin

Mein Poor Man Push konnte mit Kenntnissen in javascript und html ganz nett in eine einfache Homepage eingebaut werden, aber für eine Einbettung in WordPress war das zu kompliziert. Blogger, die in erster Linie bloggen wollen, brauchen hierfür ein Plugin.

Wer einen WordPress Blog betreibt, kann auch Plugins installieren. Diese Plugins realisieren Funktionen, wie z.B. Bilderleisten, Suchen in Blogartikel oder auch den Verkauf von Produkten und so weiter. Unter https://de.wordpress.org/plugins/ kann er aus mehr als 50.000 Plugins auswählen, welches er hinzufügt. Auf der Verwaltungsseite des Blogs, im „Dashboard“, aktiviert und konfiguriert er das Plugin. Zu der Beitragsvorlage fügt er die Widgets, das sind die Teile, die der Leser des Blogs sieht, an die gewünschten Positionen.

So wollte ich das auch mit dem Poor Man Push machen.

Das klang nach richtiger Arbeit. Um das nebenher zu erledigen, brauchte ich Erfolgserlebnisse. Bei Erreichen eines Zwischenschritts, konnte ich feiern und die Arbeit ruhen lassen, da ich nicht immer Zeit hatte.

Der Plan hatte zunächst drei Punkte:

  1. Widget für den Button An- und Abmelden
    Das klang einfach. Ich würde hier Javascript in WordPress einbauen lernen.
  2. Tabelle in der WordPress Datenbank, Funktionen zum Eintragen und Listen im Admin Panel.
    Der Datenbank Viewer sollte mir die richtigen Ergebnisse anzeigen. Ich könnte einfach die Datenbank zu den WordPresstabellen stellen und gut wäre.
  3. Verschicken der Pushnachrichten aus dem Admin Panel
    Hier wollte ich ein Kommandodatei online erzeugen, die auf dem Mac oder einem anderen Gerät mit Kommandozeile heruntergeladen und dort ausgeführt wird.

 

Ich fing mit einem einfachen Tutorial für Widgets und für Plugins an. Der erste Erfolg kam zu schnell, so daß ich vom Weg abkam. 

WordPress Widget

Mein Widget zeigte einen Titel („Nachrichten abonnieren?“) an und verwaltete zwei Buttons („anmelden“, „abmelden“) und eine Meldung („Wird vom Browser nicht unterstützt“). Das Javascript prüft, ob der Browser Push Nachrichten unterstützt und bietet dann an, sich anzumelden, falls noch nicht geschehen, oder sich abzumelden, falls der Leser schon abonniert hat.

Meine Stammleser sollten so etwas sehen:

Das Widget erlaubt die An- und Abmeldung von Push Nachrichten
Push Nachrichten abonnieren

Es war so einfach die Javascript Datei konform nach Anleitung zu laden. Dadurch stellt WordPress sicher, dass die Plugins ihr benötigtes Javascript nicht mehrfach laden, sondern schön geordnet.

Für die Anmeldung der Push Nachrichten am Pushserver brauchte ich noch den Schlüssel und die E-Mail eines Verantwortlichen. Diese beiden Einträge implementierte ich als Optionen des Widgets und schon konnte ich die Meldung „Registrieren von Nachrichten mit Schlüssel xxx, Responsible yyy, Webseite test.gawehns.de“ feiern.

Es fühlte sich so gut an, dass ich beschloss zunächst das „Frontend“ vollständig zu implementieren und dann mit den Daten weiter zu machen.

WordPress Dashboard Widget

Ein Widget für das Dashboard war schnell gebaut. Ich wollte die aktuellsten fünf Beiträge mit Titel und Kurzbeschreibung anzeigen lassen. Der Blogger hatte an der rechten Seite seinen „Push“ Button. Bei einem Click auf den Button erschien die Meldung „<Kurzbeschreibung> für <Titel> mit Link <url>“.

Das war wieder ein Erfolg zum Feiern!

Als nächste sollte eine Datei mit dem Aufruf des Python Skripts erstellt werden. Da hieß es die Schlüssel zusammenstellen. Diese waren im anderen Widget gespeichert. Zwar fand ich eine Schnittstelle. Diese lieferte jedoch eine Liste von Instanzoptionen zurück. Ich staunte nicht schlecht. Mir fiel auf, dass in der Tat ein Widget mehrmals auf einem Post sein könnte.

Das war ein Punkt zum Äußersten zu greifen. Ich suchte nach einem Manual und fand https://codex.wordpress.org/Main_Page.

Datenbank

Ich suchte die Beschreibung über die Datenbanktabellen. Meine Widgets wollte ich nicht direkt überarbeiten. Ich wusste, dass WordPress SQL-Datenbanken verwendet. Das war bekanntes Terrain. Erfolgserlebnisse mussten her!

Das Manual las sich wie ein Buch und die Beispiele führten zu weiteren Informationen. Bei dem Kapitel zu den eigenen Tabellen, stand etwas von get_option(), der Funktion zum Zugriff auf eben solche Optionen. So hätten die Werte für den Blog insgesamt abgespeichert gehört. In Fall von Poor man Push waren das der Schlüssel und die Email des Verantwortlichen. In dieser Weise sollte ich die Widgets überarbeiten.

Ich las von der WordPress REST-Api. Das bot dann wieder ganz viele Möglichkeiten einen Blog zu erweitern. Sollte es etwa möglich sein, automatisch zu Bloggen?

Zum Glück fand ich wieder zurück zu meinem ursprünglichen Projekt. Diszipliniert reimplementierte ich die Datenbank und die REST-Schnittstelle aus dem dritten Teil gemäß den WordPress Vorgaben.

Auch die Widgets überarbeitete ich. Am Ende zeigte sich das Dashboard Widget so:

Die Schlüsselinformationen werden konfiguriert, der Text kann eingeben werden und push
Dashboard Widget für Poor Man Push

Bei Push wird die Datei push.sh heruntergeladen. Per „sh push.sh“ wird das Pythonskript zum Versenden der Nachrichten an alle Abonnenten ausgeführt.

In der Tat sah ich auf meinem Desktop:

Auf dem Desktop erscheint eine kleine Nachricht.
Push Nachricht auf dem Desktop

Es war geschafft! Ein Click auf die Nachricht brachte „Der neueste Beitrag“ auf den Browser.

Unter https://test.gawehns.de kann nun abonniert werden. Den richtigen Blog mit diesem Beitrag erweitere ich dann später.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert