2008-09-08 13 views
1

J'ai créé quelques balises mediawiki personnalisés, en utilisant le guide qui se trouve icitag Mediawiki personnalisé Arrête la page parsing

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

Je vais poster mon code ci-dessous, mais le problème est après elle frappe la première balise personnalisée dans la page, il l'appelle, et imprime la réponse, mais n'obtient rien qui vient après dans le wikitext. Il semble que ça arrête juste d'analyser la page.

Des idées?

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

Mise à jour: @George Mauer - J'ai vu ça aussi, mais cela ne vous arrêtez pas la page de rendu, juste le moteur Mediawiki de l'analyse syntaxique du reste du wikitext. C'est comme si frapper la fonction personnalisée signale à mediawiki que le traitement est fait. Je suis en train de plonger dans le trou du lapin mais espérais que quelqu'un d'autre a vu ce comportement.

+0

voir ci-dessous, j'ai répondu au problème –

Répondre

0

Jamais utilisé Mediawiki mais ce genre de problème dans mon expérience est révélateur d'une erreur PHP qui s'est produite mais a été supprimée soit avec l'opérateur @ ou parce que la sortie d'erreur php à l'écran est désactivée. Je déteste recourir à cette méthode de débogage, mais quand absolument et totalement frustré en PHP, je vais commencer à mettre des déclarations d'écho toutes les lignes (toujours avec un marqueur, donc je me souviens de les supprimer plus tard), pour savoir exactement où erreur vient de. Finalement, vous arriverez au fond du trou du lapin et comprendrez exactement quelle est la ligne de code problématique.

0

Silly moi.

A dû fermer les étiquettes.

Au lieu de <tag1> je devais changer à <tag1 /> ou <tag1></tag1>

Maintenant tous les travaux!