Mediawiki自定义标记停止页面解析
时间:2020-03-05 18:49:24 来源:igfitidea点击:
我使用此处找到的指南创建了一些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引擎解析其余Wikitext。好像击中自定义功能是在向MediaWiki发出信号,表明处理已完成。我正在潜入兔子洞,但希望其他人已经看到了这种行为。
解决方案
回答
从未使用Mediawiki,但根据我的经验,这种问题表明发生了php错误,但已使用@运算符抑制了该错误,或者者由于关闭了输出到屏幕的php错误而被抑制了。
我讨厌诉诸于这种调试方法,但是当在php中完全受挫时,我将开始每隔几行开始放置echo语句(总是带有标记,所以我记得以后再删除它们),以准确找出错误的出处。最终,我们将到达"兔子洞"的底部,并准确找出问题代码行是什么。
回答
傻我
必须关闭标签。
我不得不将其改为<tag1>
或者<tag1> </ tag1>
,而不是<tag1>
。
现在一切正常!