我使用此处的指南
创建了一些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 Mauer - 我也看到了这一点,但这并不会阻止页面呈现,只是Mediawiki引擎解析其余的wiki文本。它就好像击中自定义函数一样,表明mediawiki正在完成处理。我正在潜入兔子洞,但希望别人看到这种行为。
答案 0 :(得分:0)
从未使用过Mediawiki,但根据我的经验,这种问题表明发生了PHP错误,但是使用@运算符或者因为PHP错误输出到屏幕被关闭了。
我讨厌采用这种调试方法,但是当我在PHP中绝对和完全沮丧时,我会开始每隔几行放置一次echo语句(总是带一个标记,所以我记得以后删除它们),找出确切的错误位置是来自。最后,你将到达兔子洞的底部并弄清楚问题的代码行是什么。
答案 1 :(得分:0)
必须关闭标签。
而不是<tag1>
我必须将其更改为<tag1 />
或<tag1></tag1>
现在一切正常!