Kommentar Basis
Das Kommentarsystem soll relativ abstrakt gehalten werden, um neben den Standard-Blog-Kommentaren auch auf die Kommentarsysteme von Social Media Diensten zurückgreifen kann. Aus diesem Grund gibt es ein Basisplugin, welches dann von den einzelnen Diensten geerbt werden kann.
Zunächst einmal gibt es zwei verschiedene Typen von Kommentarsystemen:
1. Kommentare mit Inhalt
Damit meine ich alle Kommentare, deren Inhalt wir in unseren Datenbanken speichern können. Das sind zum einen die normalen Kommentare, die wir aus WordPress kennen. Dazu gehören aber auch die Trackbacks oder zum Beispiel Tweets zum Thema, die über die Twitter API extraiert und bei uns im System importiert werden können.
Dazu gibt es eine Kommentar-Klasse, die den Kommentar selbst abbildet. Diese sollte folgende Funktionen beinhalten:
- text($new_value = null) Der Inhalt des Kommentares. HTML ist nicht erlaubt.
- timestamp($new_value= null) Timestamp in UTC. Wenn hier Strings angegeben werden, sollen diese über strtotime automatisch umgewandelt werden.
- author_name($new_value= null) Der Name des Verfassers. Im Falle eines Trackbacks kann dies z.B. auch der Name eines Blogs sein.
- author_url($new_value= null) Die Url des Autors, Trackbacks, Tweets,...
- author_image_url($new_value= null) = Url zum Autorenbild, z.B. über Gravatar.
- status($new_value = null) Der Status soll die Werte NEW => Neuer Kommentar, APPROVED => Spamfrei, SPAM => Dürfte klar sein. DELETED => Gelöscht
- provider_name($new_value = null) Plugin-Namespace des Plugins, dass den Kommentar eingefügt hat. Zum Beispiel plugin_defaultcomment.
- id() gibt die ID des Kommentars zurück
- save() Speichert alles in die Datenbank. Mittels ON DUPLICATE KEY, werden bestehende Einträge geupdatet.
Bei Bedarf kann die Klasse um weitere Felder erweitert werden.
2. Kommentare auf externen Seiten
Facebook und Co bieten bereits fertige Kommentarsysteme. Diese kann man allerdings nicht immer direkt mit den anderen Kommentaren vermixen. Aus diesem Grund muss es auch eine Möglichkeit geben, diese mit zu den normalen Kommentaren anzuzeigen.