2008-09-08 8 views
1

ich ein paar mediawiki benutzerdefinierten Tags erstellt, fand die Führung mit hierMediawiki benutzerdefinierte Tag Stoppt Seite Parsing

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

Ich werde meinen Code unten schreiben, aber das Problem ist, nachdem es das erste benutzerdefinierte Tag trifft in die Seite, ruft sie auf, und druckt die Antwort, bekommt aber nichts, was im wikitext dahinter steht. Es scheint, dass es nur aufhört, die Seite zu analysieren.

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"; 
}

Update: @George Mauer - das habe ich auch gesehen, aber das ist noch nicht die Seite aus machen, sondern nur den Mediawiki-Motor den Rest des wikitext von Parsen. Es ist so, als würde die benutzerdefinierte Funktion signalisieren, dass mediawiki die Verarbeitung ausgeführt hat. Ich bin gerade dabei, in das Kaninchenloch zu tauchen, habe aber gehofft, dass jemand anderes dieses Verhalten gesehen hat.

+0

siehe unten, antwortete ich mit dem Problem –

Antwort

0

Nie verwendet Mediawiki aber diese Art von Problem in meiner Erfahrung ist ein Hinweis auf einen PHP-Fehler, der aufgetreten ist, aber entweder mit dem @ Operator unterdrückt wurde oder weil PHP-Fehlerausgabe auf dem Bildschirm ausgeschaltet ist.

Ich hasse es, auf diese Debugging-Methode zurückgreifen, aber wenn absolut und völlig frustriert in PHP werde ich nur beginnen, Echo-Aussagen alle paar Zeilen (immer mit einem Marker, so dass ich erinnere, sie später zu entfernen), um herauszufinden, wo genau Fehler kommt von. Schließlich werden Sie auf den Grund des Kaninchenlochs kommen und genau herausfinden, was die problematische Codezeile ist.

0

Dumm ich.

Musste die Tags schließen.

Statt <tag1> musste ich es <tag1 /> oder <tag1></tag1>

nun alle Werke ändern!