Manual:Parser functions/de

Parserfunktionen, die in MediaWiki 1.7 hinzugefügt wurden, sind eine Art Erweiterung, die eng mit dem Parser integrieren. Der Begriff Parserfunktionen, sollte nicht mit Erweiterung:Parserfunktionen verwechselt werden, das ist eine Sammlung von einfachen Parserfunktionen.

Beschreibung
Während eine Tag Extension unverarbeiteten Text in HTML-Code verwandelt, kann eine Parser Function mit anderen Wiki-Elementen auf der Seite „interagieren“. Die Ausgabe einer Parser Function kann beispielsweise als Parameter für eine Vorlage oder für die Konstruktion eines Links genutzt werden.

Die typische Syntax für eine Parserfunktion lautet:

Für weitere Informationen, siehe für. Diese Dokumentation führt aus:
 * Die Callback-Funktion sollte diese Form haben:
 * Oder mit :
 * Oder mit :

Die Erstellung einer Parserfunktion ist etwas komplizierter als die Schaffung eines neuen Tag, weil der Name der Funktion ein magisches Wort sein muss — ein Schlüsselwort, das Aliase und Lokalisierung unterstützt.

Einfaches Beispiel
Unten ist ein Beispiel von einer Erweiterung, die eine Parserfunktion erstellt.

Diese Datei sollte ExampleExtension.php genannt werden, wenn der Name Ihrer Erweiterung ExampleExtension ist :

Eine weitere Datei, ExtensionName.i18n.magic.php, sollte enthalten:

Mit dieser Erweiterung aktiviert,



produziert:


 * param1 is hello and param2 is hi and param3 is hey

Das magicWords-Array ist nicht optional. Wenn es ausgelassen wird, funktioniert die Parser Function nicht. wird dann so gerendert, als ob die Extension nicht installiert wäre.

Mehr Funktionen
Für mehr Funktionen, können Sie die Hook-Funktionen in eine _body.php oder Hooks.php Datei aufteilen und statische Funktionen von einer Klasse machen.

Dann können Sie die Klasse mit $wgAutoloadClasses laden und rufen die statischen Funktionen in den Hooks, z.B.:

Setzen Sie diese in Ihre  Datei: Dann setzen Sie diese in Ihre   Datei:
 * Siehe Schreiben eines Event-Handlers für weitere Stile.

Zwischenspeicherung
Wie bei Tag-Erweiterungen, $parser->disableCache kann verwendet werden, um den Zwischenspeicher (Cache) für dynamische Erweiterungen zu deaktivieren.

Steuerung des geparsten der Ausgabe
Um den Wikitext von Ihrer Parserfunktion zurückgegeben zu lassen, vollständig analysiert werden (einschließlich Erweiterung der Vorlagen), setzen Sie die noparse Option auf false bei der Rückkehr Es scheint, der Standardwert für noparse ändert von false auf true, zumindest in einigen Situationen, irgendwann um Version 1.12.

Umgekehrt, damit Ihre Parserfunktion HTML zurückgibt das ungeparsed bleibt, anstatt sie direkt Wikitext zurück gibt, benutzen Sie dies: Allerdings, Dies ist ein Test. produziert so etwas wie das:

This is

param1 ist hallo und param2 ist hi ein Test.

Dies geschieht aufgrund einer fest programmierten "\n\n", die auf der HTML-Ausgabe von Parserfunktionen vorangestellt wird. Um dies zu vermeiden, stellen Sie sicher, dass und der HTML-Code gerendert wird inline mit dem umgebenden Text, können Sie dies nutzen:

Benennung
Standardmäßig fügt MW einen Hash-Zeichen (Anzahlzeichen "#") auf den Namen der jeweiligen Parserfunktion.

Um diese Hinzufügung zu unterdrücken (und eine Parserfunktion ohne "#"-Präfix zu erhalten), gehören die SFH_NO_HASH Konstante in den optionalen Flags-Argument setFunctionHook, wie unten beschrieben.

Bei der Wahl eines Namens ohne einen Hash-Präfix, beachten Sie dass Vorlageneinbindung einer Seite mit einem Namen, der mit diesem Namen der Funktion gefolgt von einem Doppelpunkt nicht mehr möglich ist. Vermeiden Sie insbesondere Funktionsnamen gleich einem Namensraum-Namen. Für den Fall, dass Interwiki Vorlageneinbindung aktiviert ist, vermeiden Sie auch, Funktionsnamen gleich einer Interwiki-Präfix.

Der setFunctionHook Hook
Für weitere Einzelheiten der Schnittstelle in den Parser, sehen Sie in der Dokumentation für setFunctionHook in includes/Parser.php nach. Hier ist eine (möglicherweise datierte) Kopie dieser Stellungnahmen:

function setFunctionHook( $id, $callback, $flags = 0 ) Parameter:


 * string $id - Die magische Wort ID
 * mixed $callback - Die Callback-Funktion (und Objekt) das verwendet werden sollte
 * integer $flags - Optional, set it to the SFH_NO_HASH constant to call the function without "#".

Rückgabewert: Die alte Callback-Funktion für diesen Namen, wenn überhaupt

Erstelle eine Funktion, z.B.,. Die Callback-Funktion sollte die Form haben:

Der Rückruf kann entweder das Textergebnis der Funktion zurückgeben, oder ein Array mit dem Text in Element 0, und eine Anzahl von Flags in den anderen Elementen. Die Namen der Flags angegeben in den Schlüsseln. Gültige Flags sind


 * found : Der zurückgegebene Text ist gültig, ausführen der Vorlage anhalten. Dies ist standardmäßig aktiviert.
 * nowiki : Wiki-Markup in dem Rückgabewert sollte maskiert werden
 * noparse : Unsichere HTML-Tags sollten nicht abgestreift werden, usw.
 * noargs : Ersetzen Sie nicht Dreifach-Klammer Argumente im Rückgabewert
 * isHTML : Der zurückgegebene Text ist HTML, rüste es gegen Wikitext Transformation

Benannte Parameter
Parser Function unterstützen benannte Parameter nicht auf die gleiche Weise wie Vorlagen und Tag Extensions, aber es kann manchmal nützlich sein, dieses Verhalten zu simulieren. Benutzer sind oft daran gewöhnt, senkrechte Striche (|) zu verwenden, um Parameter zu trennen, sodass es auch im Kontext von Parser Function sinnvoll sein kann, dies zu ermöglichen. Hier ist ein einfaches Beispiel, wie das erreicht werden kann:

Siehe auch

 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.
 * Die Parserfunktionen Erweiterung ist eine bekannte Sammlung von Parserfunktionen.