2008-09-08 48 views
1

我创建了几个链接到MediaWiki自定义标签,在这里使用Mediawiki的自定义标签停止页面解析

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

找到了导游,我会发布我下面的代码,但问题是它击中的第一个自定义标签后该页面调用它,并打印响应,但在wikitext中没有得到任何内容。它似乎只是停止解析页面。

任何想法?

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

更新:@George莫尔 - 我所看到的,以及,但这并不从渲染从解析wiki文字的休息站的页面,只是MediaWiki的引擎。就好像击中自定义函数一样,正在发信号通知mediawiki处理完成。我正在潜入兔子洞,但希望有人看到这种行为。

+0

见下,我回答了问题 – 2008-09-11 21:31:29

回答

0

从未使用过Mediawiki,但在我的经验中,这种问题表明发生了一个php错误,但是被@操作符抑制或者因为php错误输出到屏幕被关闭。

我不喜欢使用这种调试方法,但是当绝对和完全沮丧在PHP中,我将开始在每隔几行(总是用一个标记,所以我记得稍后删除它们)放置echo语句,错误来自于。最终,你会到达兔子洞的底部,并找出有问题的代码行是什么。

0

傻了。

只好关闭标签。

而不是<tag1>我不得不将其更改为<tag1 /><tag1></tag1>

现在所有的作品!