Mediawiki自定义标签停止页面解析

时间:2008-09-08 15:06:24

标签: php 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 Mauer - 我也看到了这一点,但这并不会阻止页面呈现,只是Mediawiki引擎解析其余的wiki文本。它就好像击中自定义函数一样,表明mediawiki正在完成处理。我正在潜入兔子洞,但希望别人看到这种行为。

2 个答案:

答案 0 :(得分:0)

从未使用过Mediawiki,但根据我的经验,这种问题表明发生了PHP错误,但是使用@运算符或者因为PHP错误输出到屏幕被关闭了。

我讨厌采用这种调试方法,但是当我在PHP中绝对和完全沮丧时,我会开始每隔几行放置一次echo语句(总是带一个标记,所以我记得以后删除它们),找出确切的错误位置是来自。最后,你将到达兔子洞的底部并弄清楚问题的代码行是什么。

答案 1 :(得分:0)

傻傻的我。

必须关闭标签。

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

现在一切正常!