Plugin-Hooks

Diese Referenz listet sämtliche Plugin-Hooks von Jlog auf und dokumentiert diese. Hooks sind die Schnittstellen zwischen Plugins und Jlog und werden bei bestimmten Ereignisse (z.B. „neuer Kommentar“) aufgerufen. Sie soll so geschrieben sein, dass man mit Hilfe der Anleitung zur Plugin-Gestaltung und den bisherigen Plugins selbst schnell neue Plugins erstellen kann.

Du bist herzlich dazu eingeladen, die Referenz zu erweitern.

Hooks für die Jlog-Seiten

hook_body

Mit Hilfe dieses Hooks lässt sich die komplette Anzeige einer Jlog-Seite manipulieren. Dieser Hook wird nach dem Verarbeiten des Templates aufgerufen, d.h. eigene Template-Erweiterungen stehen hier dann zur Verfügung. Es können aber auch zusätzliche Informationen eingefügt oder bestehende entfernt werden.

Parameter
$body, der komplette HTML-Code bis dahin
Rückgabe
$body mit eigenen Veränderungen

hook_doEntry

Dieser Hook wird aufgerufen, nachdem die HTML-Darstellung eines Artikels („der Inhalt“) komplett erstellt worden ist und bevor dieser HTML-Code an den Browser gesendet wird. Die Funktion hat Zugriff auf diesen HTML-Code, so dass ein Postprocessing durchgeführt werden kann oder zum Anhängen von Code für weitere Informationen (z.B. Anhänge oder „Digg this“).

Parameter
  • $output enthält den HTML-Code für die Ausgabe
  • $dbData enthält sämtliche Artikelinformationen aus der Datenbank
  • $cc ist die Anzahl an Kommentaren
  • $section "weblog" oder "page"
Rückgabe
$output erweitert mit eigenem HTML-Code

Hooks zur Erweiterung von BBCode

hook_bbcode

Mit Hilfe dieses Hooks können weitere, eigene BBCode-Tags in Jlog definiert und benutzt werden. Der Hook wird bei der Ausgabe eines Artikels für den kompletten Text des Beitrags aufgerufen.

Parameter
$bbcode, die globale BBCode-Verwaltung
Rückgabe
Das um eigene Parser erweiterte BBCode-Objekt $bbcode.

Innerhalb der Methode kann mit $bbcode->addCode und $bbcode->addParser ein neuer Parser hinzugefügt werden. Was dabei zu beachten ist und wie die BBCode-Methoden funktionieren ist in der Dokumentation der StringParser-Klasse beschrieben.

hook_bbccomments

Siehe hook_bbcode.

Hooks beim Aktualisieren von Artikeln

hook_insertEntry

Dieser Hook wird beim Abspeichern eines neuen Artikels aufgerufen und erhält als Argument alle Werte des „Admin-Forms“. Damit ist ein Zugriff auf eventuell zusätzlich hinzugefügte Formularfelder möglich (siehe adminForm).

Parameter
  • $id ist die ID des neuen Artikels
  • $form_input enthält die bereits für SQL maskierten Formularwerte
Rückgabe
void

hook_updateEntry

Analog zu hook_insertEntry wird dieser Hook beim Aktualisieren eines Artikels mit den Formularwerten aufgerufen.

Parameter
  • $id ist die ID des neuen Artikels
  • $form_input enthält die bereits für SQL maskierten Formularwerte
Rückgabe
void

hook_onUpdate

Dieser Hook wird beim Aktualisieren eines Artikels (ändern oder neuen anlegen) aufgerufen. So ist es z.B. möglich, auf diese Weise eigene, erweiterte Newsfeeds zu erstellen oder andere Aktionen auszuführen, die über einen aktualisierten Artikel informiert werden sollten.

Parameter
$data, enthält die Daten der RSS-Feeds personal/rss.xml in $data['rss'], personal/rss-full.xml in $data['rss_full'] sowie der personal/subcurrent.inc.php in $data['sub'].
Rückgabe
Daten, die Jlog anschließend speichern soll, am Besten $data unverändert.

Hooks für Kommentare

hook_commentForm

Mit Hilfe dieser Methode wird das Formular zur Eingabe eines Kommentars manipuliert (z.B. um weitere BBCodes erweitert).

Parameter
$form, enthält den Standard-XHTML-Code für das Eingabeformular
Rückgabe
Die XHTML-Oberfläche des Formulars
Beispiel
plugins/code-for-comments

Um das Formular lediglich zu erweitern, muss $form Teil der Rückgabe sein, andernfalls wird das Formular komplett ersetzt.

hook_newComment

Dieser Hook wird vor dem Eintragen eines neuen Kommentars in die Datenbank aufgerufen, damit man in irgendeiner Weise auf den Beitrag reagieren kann. Das Akismet-Plugin führt damit z.B. eine Spam-Prüfung durch.

Parameter
$form, enthält die rohen POST-Daten des Formulars beim Absenden des Kommentars
Rückgabe
Am Besten $form

hook_showComment

Dieser Hook wird bei der Ausgabe eines Kommentares aufgerufen, so dass dessen Anzeige erweitert oder verändert werden kann (z.B. für Avatare).

Parameter
  • $comment, enthält den XHTML-Code zur Anzeige eines Kommentares
  • $data, enthält alle „Felder“ eines Kommentares als Array-Elemente
  • $nr ist die (angezeigte?) Nummer des aktuellen Kommentars
Rückgabe
Der XHTML-Code, der den Kommentar darstellt.
Beispiel
plugins/gravatar-implementation

hook_updateComment

Jlog ruft diese Methode beim Aktualisieren eines Kommentars auf.

Parameter
$data enthält die Daten des HTML-Formulars
Rückgabe
Am Besten $data

hook_deleteComment

Beim Löschen eines Kommentars wird diese Methode aufgerufen, damit z.B. mit dem Kommentar verknüpfte Informationen entfernet werden können.

Parameter
$id des Kommentars
Rückgabe
wahrscheinlich am Besten $id

Hooks für den Adminbereich

hook_adminContent

Diese Methode steht im Admincenter unter dem Navigationspunkt Plugins zur Verfügung: Wählt man dort ein Plugin aus, wird genau diese Methode des Plugins aufgerufen und dessen Rückgabe als XHTML angezeigt. Der Hook bietet sich für Plugins an, die das Admincenter um Funktionen erweitern sollen oder zur Konfiguration von Plugins.

Parameter
$output, enthält den Standardtext, der angezeigt wird, falls das Plugin keine Ausgabe hat.
Rückgabe
Der anzuzeigende XHTML-Code als string.

hook_adminForm

Analog zu den oben genannten Hooks zur Veränderung der Eingabeformulare für Kommentare, lässt sich mit Hilfe dieser Methode die Eingabemaske des Administrators für Beiträge (im Adminbereich unter Inhalte zu finden) erweitern.

Parameter
  • $form, der XHTML-Code des Formulars
  • $data, die übermittelten Formularwerte, sofern vorhanden (z.B. beim Ändern eines Artikels)
Rückgabe
Der XHTML-Code für das Formular, mit dem der Admin Beiträge bearbeitet
Beispiel
plugins/admin-no-bbcode

hook_commentAdminList

Beim Auflisten aller Kommentare im Admin-Center wird dieser Hook für jeden Kommentar aufgerufen.

Parameter
$comment enthält den HTML-Code der Tabellenzeile $data sind die Daten („Felder“) des Kommentars aus der Datenbank
Rückgabe
der HTML-Code, der in der Tabelle gezeigt werden soll
Beispiel
plugins/CommentModeration