Ich mobloge, Du moblogst, Er/Sie/Es moblogt…

Rubrik:  in eigener Sache  ·  Autor:  Zappelfillip11. August 2005, 11:08 Uhr

Noch bevor der eigentliche Inhalt Einzug in dieses Blog hielt, stand für mich fest, dass ich unbedingt eine MoBlog-Funktionalität haben wollte. Damit sollte blogen sowohl per Handy also auch Email möglich sein. Lange habe ich gar nicht gesucht, sondern stolperte schnell über die freie MoBLog-Software simsi von Marc Rohlfing. Diese stellt allerdings eine standalone Lösung dar und ist kein PlugIn für WordPress. Also musste ich es auf meine Bedürfnisse ummodeln und versuchen, es in das WordPress-Schema zu integrieren.

Das MoBlog sollte als eigene Kategorie innerhalb des Weblogs (bei mir heißen diese „Blog-Rubriken“) erscheinen und bei Klick des Links alle MoBlog-Posts ausgeben, ohne dass diese nochmal anklickbar sind. Zusätzlich sollte hinter dem Kategorienamen „MoBlog“ in der Sidebar in Klammern die Anzahl der enthaltenen Beiträge wie bei allen anderen Rubriken erscheinen. Das erste Problem war leicht zu lösen. Bevor mittels der Funktion wp_list_cats() in der sidebar.php meines Themes die normalen Blog-Rubriken ausgegeben werden, habe ich den Link auf die index.php des simsi-Skriptes eingetragen. Somit erschien das MoBlog für den Besucher immerhin schonmal als eigenständige Kategorie. Problem: Natürlich wird die Anzahl der Posts hinter dem Wort „MoBlog“ nicht angezeigt, denn das ist ja eine Funktion von WordPress.

Um dieses Problem zu lösen, musste ich also aus den gespeicherten Daten von simsi auslesen, wieviele Einträge existieren und diese Anzahl hinter dem Kategorienamen ausgeben. Simsi speichert die Daten in einer XML-Datei, welche gleichzeitig das RSS-Feed darstellt. Gesendete Bilder werden vom Skript in Originalgröße und in einer verkleinerten Thumbnail-Version auf dem Server im Verzeichnis /simsi/pictures/ gespeichert. Der Link auf die Bilder findet sich dann ebenfalls in der XML-Datei. Das heißt also, würde ich die Anzahl der <item>(alle Daten eines MoBlog-Posts)</item> in der XML-Datei ermitteln können, hätte ich auch die Anzahl der Posts. Also programmierte ich in einem PHP-Skript das Auslesen der rss.xml (das ist besagte XML-Datei, in der die Daten stehen) und ließ anschließend das Vorkommen der Zeichenfolge <item> zählen. Um diesen Vorgang aber nicht bei jedem Aufruf der Seite durch einen Besucher neu ausführen zu lassen, schrieb ich diesen Wert in eine Datei auf dem Server. Immer wenn nun jemand auf zappelfillip.de kam, las ein Skript aus dieser gespeicherten Datei den Wert für die Anzahl der Posts aus und schrieb ihn in Klammern hinter „MoBlog“ in der Sidebar.

Damit funktionierte zumindest die Anzeige des MoBlog-Links und sah identisch zu den anderen Kategorien aus. Ein Besucher würde nun nicht mehr erkennen, dass es sich nicht um eine wordpress-eigene Kategorie handelt.

So richtig zufrieden war ich aber doch nicht. Das hatte eigentlich drei Gründe: Zum einen restriktiert mein Webspace-Hoster ziemlich stark, wo das Programm Dateien auf dem Server speichern darf. Das hat sicherheitstechnische Gründe. Aber mir gefiel es nicht, dass die Datei ganz woanders lag als das simsi-Skript. Ich hasse Unübersichtlichkeit und schließlich sollte das Ganze auch leicht zu einem anderen Hoster portierbar sein, falls zappelfillip.de mal umziehen müsste. Der 2. Grund: Dateizugriffe sind immer problematisch, wenn mehrere Zugriffe gleichzeitig erfolgen. Ein solches Problem ergibt sich zum Beispiel, wenn ein neuer Beitrag von meinem Handy kommt und während gerade die neue Anzahl in die Datei geschrieben wird, versucht ein anderer Benutzer durch Aufruf der Seite diese Datei auszulesen. Okay – die Wahrscheinlichkeit, dass dies passiert, ist bei meiner Besucherzahl mehr als unwahrscheinlich und es gibt auch Mechanismen, sich davor zu schützen. Aber trotzdem hat es mir nicht so recht behagt. Und an dieser Stelle kommt der 3. Grund ins Spiel: Ich wollte gerne mal ein wenig mit Datenbanken spielen.

Also beschloss ich, die Anzahl der Posts nicht in eine Datei zu schreiben sondern in eine weitere Tabelle der WordPress-MySQL-Datenbank. Also kurzerhand diese Tabelle erstellt, die nur aus zwei Spalten und einer Zeile besteht. Theoretisch würde ein Feld (also eine Spalte auf einer Zeile) ausreichen, in dem die Anzahl als Ganzzahl gespeichert ist, aber ich habe die Spalten ID und Anzahl erstellt, um über die ID schnell auf die Anzahl zugreifen zu können. Ich habe keine Ahnung, ob das nötig ist, aber es war meine erste Datenbank-„Anwendung“ und so hat es funktioniert. Nun wird also bei jedem Seitenaufruf die Anzahl der Posts aus dieser Tabelle ausgelesen und hinter dem MoBlog-Namen ausgegeben.

Tja was war noch nötig? Natürlich musste ich in die index.php von simsi den header und footer meines Themes einbinden, damit das Design stringent bleibt. Weiterhin gab es das Problem, dass das Skript deutsche Umlaute (ÄÖÜäöüß) als Fragezeichen ausgab. Also lasse ich diese Umlaute in den Beiträgen durch die HTML-Ensprechungen ersetzen (z.B. &Auml; für Ä).

Damit war ich dann meinem Ziel schon ein gutes Stück näher. Das letzte, was mich noch wurmte: Bis jetzt konnten Besucher natürlich keine Kommentare ins MoBlog schreiben. Die ins WordPress integrierte Funktion ist für diesen Fall ja leider nicht möglich. Also habe ich mir im Internet ein PHP-Skript für ein einfaches Gästebuch gesucht und dieses soweit umgebaut, dass es als Kommentarfunktion dienen kann. Die Einträge werden wieder in einer Tabelle in der WordPress-MySQL-Datenbank gespeichert. Optisch ist die Kommentarfunktion gleich der WordPress-eigenen.

Ja und das war’s eigentlich. Mir ist klar, dass anhand dieser Beschreibung die ganze Sache nicht so ohne weiteres nachgebastelt werden kann. Aber ich habe im Laufe der 2 Tage soviel probiert und geändert, dass ich es nicht mehr im Einzelnen weiß und auch sicher nicht verständlich erklären könnte. Ich gebe aber gerne meine Dateien weiter und wer es sich zutraut, kann natürlich (auch mit meiner Hilfe) versuchen, es in sein Weblog zu integrieren.

Ach so – nochmal kurz zur Funktionalität. Also ich blogge nicht „direkt“ vom Handy ins Moblog. Vielmehr habe ich eine Emailadresse angelegt, welche das simsi-Skript auf neue Mails überprüft und, wenn vorhanden, ins MoBlog postet – inklusive Bilder, wenn diese in den Emails enthalten waren. Zum Senden nutze ich die Funktion von O2, SMS und MMS an Emailadressen senden zu können.

Diesen Artikel bookmarken:

Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • Technorati
  • Furl
  • StumbleUpon
  • Reddit
  • Webnews
  • MisterWong
  • Y!GG
  • Spurl
  • Bloglines
  • Google Bookmarks

2 Kommentare    ·    hier schreiben
  1. Kommentar:
    Fatal error: Call to undefined function comment_subscription_status() in /www/htdocs/w00c005e/zappelfillip_de/wordpress/wp-content/themes/zappelfillip/comments.php on line 53