Frage

Ich habe mithilfe der hier gefundenen Anleitung einige benutzerdefinierte Mediawiki-Tags erstellt

http://www.mediawiki.org/wiki/Manual:Tag_extensions

Ich werde meinen Code unten veröffentlichen, aber das Problem besteht darin, dass er, nachdem er auf das erste benutzerdefinierte Tag auf der Seite trifft, es aufruft und die Antwort ausgibt, aber nichts erhält, was danach im Wikitext kommt.Es scheint, dass das Parsen der Seite einfach aufhört.

Irgendwelche Ideen?

if ( defined( 'MW_SUPPORTS_PARSERFIRSTCALLINIT' ) ) {
     $wgHooks['ParserFirstCallInit'][] = 'tagregister';
} else { // Otherwise do things the old fashioned way
     $wgExtensionFunctions[] = 'tagregister';
}

function tagregister(){
  global $wgParser;
  $wgParser->setHook('tag1','tag1func');
  $wgParser->setHook('tag2','tag2func');
  return true;
}

function tag1func($input,$params)
{
  return "It called me";
}

function tag2func($input,$params)
{
  return "It called me -- 2";
}

Aktualisieren:@George Mauer – Das habe ich auch gesehen, aber das hindert die Seite nicht am Rendern, sondern nur daran, dass die Mediawiki-Engine den Rest des Wikitexts analysiert.Es ist, als ob das Aufrufen der benutzerdefinierten Funktion Mediawiki signalisieren würde, dass die Verarbeitung abgeschlossen ist.Ich bin gerade dabei, in den Kaninchenbau einzutauchen, hatte aber gehofft, dass jemand anderes dieses Verhalten gesehen hat.

War es hilfreich?

Lösung

Ich habe Mediawiki noch nie verwendet, aber meiner Erfahrung nach weist ein solches Problem auf einen PHP-Fehler hin, der aufgetreten ist, aber entweder mit dem @-Operator unterdrückt wurde oder weil die PHP-Fehlerausgabe auf dem Bildschirm deaktiviert ist.

Ich hasse es, auf diese Debugging-Methode zurückzugreifen, aber wenn ich in PHP völlig frustriert bin, fange ich einfach an, alle paar Zeilen Echo-Anweisungen einzufügen (immer mit einer Markierung, damit ich daran denke, sie später zu entfernen), um genau herauszufinden, woher der Fehler kommt .Irgendwann werden Sie der Sache auf den Grund gehen und genau herausfinden, was die problematische Codezeile ist.

Andere Tipps

Wie dumm von mir.

Musste die Tags schließen.

Anstatt<tag1> Ich musste es ändern <tag1 /> oder <tag1></tag1>

Jetzt funktioniert alles!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top