我正在使用MediaWiki。我需要为一些文章创建一个动态表。
例如,给定一个名为“Lupo”的页面,我需要查询数据库,使用代码“Lupo”找到条目(与文章标题相同的值)并生成一个表格,其中包含查询结果集提供的一些数据
我正在尝试使用解析器函数执行此操作:
$parser->setFunctionHook('adetail', 'aFunc' );
:
function aFunc($parser, $name) {
// do the query etc.
}
以这种方式调用函数:
{{adetail:Lupo}}
无论如何,我不想在解析器函数参数中重复文章标题。 有更好的方法吗?
答案 0 :(得分:1)
如果您从模板调用此解析器函数,则可以使用魔术字FULLPAGENAME:{{adetail:{{FULLPAGENAME}}}}
。无论模板在何处使用,FULLPAGENAME都将替换页面名称。 {{PAGENAME}}
执行相同的操作,但没有命名空间前缀。
如果您始终希望解析器函数采用当前页面,则可以从函数aFunc like this访问它:
function aFunc($parser, $params) {
$title = $parser->getTitle()->getPrefixedText();
...
如果您正在寻找一种创建动态表格的方法,而不必将自己的扩展程序放在一起,我建议您查看Semantic MediaWiki。