Manual:Hooks/de



Hooks erlauben benutzerdefinierten Code auszuführen, wenn eins von vielen definierten Ereignissen (wie das Speichern eines Artikels oder wenn sich ein Benutzer anmeldet) auftreten werden. Zum Beispiel: Der folgende Code-Schnipsel, wenn zur LocalSettings.php hinzugefügt, würde die Funktion  aufrufen, wann immer der   Hook läuft (function arguments):

""

MediaWiki bietet viele Hooks, die verwendet werden können, um die Funktionalität der MediaWiki-Software zu erweitern. Zuweisen einer Funktion (auch bekannt als ein Event-Handler) zu einem Hook führt dazu, dass diese Funktion am entsprechenden Punkt im Haupt-MediaWiki-Code aufgerufen wird, um was auch immer für zusätzliche Aufgabe(n) der Entwickler denkt durchzuführen, wäre an dieser Stelle sinnvoll. Jeder Hook kann mehreren Handlern zugewiesen werden, wobei sie die Funktionen in der Reihenfolge aufrufen, der sie zugeordnet sind, mit jeglichen Änderungen gemacht durch eine Funktion, werden an nachfolgende Funktionen in der Kette weitergegeben.

Hooks sollten am Ende der LocalSettings.php oder in Ihrer eigenen Erweiterungs-Datei auf dem Datei-Umfang (nicht in einer $wgExtensionFunctions oder dem ParserFirstCallInit Hook) zugeordnet werden. Der einfachste Weg, um eine Funktion zu einem Hook zuzuweisen ist:

""

die ein Element an das Array $wgHooks hinzufügen. Sie können auch neue Hooks in Ihrer eigenen Erweiterung erstellen. Hooks die auf diese Weise erstellt werden, sollten der Extension Hook Registry hinzugefügt werden.

Hintergrund
Jeder Hook ist im Code durch einen Aufruf der Funktion wfRunHooks, die in der Datei Hooks.php definiert ist vertreten. Das erste Argument von wfRunHooks ist der Name des Hooks, der zweite ist der Array von Argumenten des Hooks. Die Funktion wfRunHooks findet die Aufgaben, die von dem Array $wgHooks getan werden. Es ruft die PHP-Funktion call_user_func_array mit Argumenten als die Funktion, die aufgerufen werden und ihre Argumente.

Siehe auch die Hook-Beschreibung in Gerrit.

In diesem Beispiel von der   Funktion in Article.php, wird wfRunHooks verwendet, um den ArticleSaveComplete Hook mit mehreren Argumenten aufzurufen:

""

Der Kern ruft viele Hooks auf, aber Erweiterungen können auch Hooks aufrufen.

Schreiben eines Ereignishandler
Ein Event-Handler ist eine Funktion, die zu einem Hook zugeordnet ist, der ausgeführt wird, wenn das Ereignis von diesem Hook vertreten auftritt wird. Es besteht aus:


 * eine Funktion mit einigen optionalen begleitenden Daten, oder
 * einer Aufgabe mit einem Verfahren und einigen optionalen zugehörigen Daten.

Eventhandler werden registriert, indem sie sie zum globalen '$wgHooks' Array für ein gegebenes Ereignis hinzufügen. Hooks können von jedem beliebigen Punkt in der Ausführung hinzugefügt werden, bevor der Hook aufgerufen ist, sind aber am häufigsten in LocalSettings.php hinzugefügt oder seiner enthaltenen Dateien. Alle die folgenden sind gültige Möglichkeiten, um Hooks zu definieren, mit dem Code der ausgeführt wird, wenn 'EventName' passiert:

Wenn ein Ereignis eintritt, wird die Funktion (oder Objekt-Methode) mit den optional zur Verfügung gestellten Daten sowie Event-spezifischen Parametern aufgerufen werden. Beachten Sie, dass wenn ein Objekt der Hook ist und es keine festgelegte Methode gibt, die Standard-Methode namens 'OnEventName' ist. Für verschiedene Ereignisse wäre dies anders: 'onArticleSave', 'onUserLogin', etc.

Die zusätzlichen Daten sind sinnvoll, wenn wir die gleiche Funktion oder ein Objekt für unterschiedliche Zwecke nutzen wollen. Zum Beispiel:

Dieser Code würde in ircNotify resultieren, zweimal zu laufen wenn ein Artikel gespeichert: einmal für 'TimStarling', und einmal für "Brion".

Event-Handler können einen von drei möglichen Werten zurückgeben:


 * true: der Hook ist seit Jahren erfolgreich
 * "some string": ein Fehler ist aufgetreten; Verarbeitung sollten aufhören, und der Fehler sollte dem Benutzer angezeigt werden
 * false: der Hook hat erfolgreich die notwendigen Arbeiten erledigt und die aufrufende Funktion sollte überspringen

Das letzte Ergebnis wäre für Fälle, in denen die Hook-Funktion die wichtigsten Funktionen ersetzt.

Zum Beispiel, wenn Sie einen Benutzer auf eine benutzerdefiniertes System (LDAP, ein anderes PHP-Programm, oder was auch immer) authentifizieren wollen, könnten Sie tun:

Das falsche zurückgeben hat weniger Sinn für Ereignisse wo die Aktion abgeschlossen ist, und wird normalerweise ignoriert.

Verfügbare hooks
This page contains a list of hooks that are made available by the MediaWiki software, and is known to be complete to version 1.8.2. There is a lot of detail missing for the more recent hooks in particular, as their purpose/usage has not yet been documented by the developers. If you have any further information on any of these then please add it in the appropriate place.

In the tables, the first column gives the MediaWiki version that the hook was introduced in; use the link in the second column to find out more information about the hook and how to use it.

Hooks gruppiert nach Funktion
Some of these hooks can be grouped into multiple functions.
 * Sections: Article Management - Edit Page - Page Rendering - User Interface - Special Pages - User Management - Logging - Skinning Templates - API - Miscellaneous

Hooks gruppiert nach Version
To see hooks grouped by version go to the table above and click the arrow symbol in the version table header.

Siehe auch

 * Manual:$wgHooks
 * Category:Hook extensions/de
 * Manual:Tag Extensions/de
 * Manual:Parser functions/de
 * hooks.txt
 * Some Examples