如何在保存到数据库之前替换MediaWiki中自定义标记内的内容?

时间:2011-03-27 21:11:43

标签: mediawiki

首先,我使用PHP 5.3.5,MySQL 5.5.8和Apache 2.2.17设置MW 1.16和1.17。

我写了一个简单的$ wgExtensionFunction,它现在什么也没做。

$wgExtensionFunctions[] = "wfTestExtension";

function wfTestExtension() { global $wgParser;
$wgParser->setHook("myTag", "renderTest");
}

function renderTest($input) {
   return $input;
}

我想要做的是,如果我在添加或编辑表单中键入<myTag>Blah blah blah</myTag>,我希望能够在将其保存到数据库之前更改myTag中的内容。我应该使用什么机制呢?我假设挂钩?例如,使用ArticleSave钩子,$ text var已经剥离了<myTag>,因此无法尝试解析字符串并找出最初位于<myTag> <内的字符串/ p>

我花了好几个小时试图在Google上找到一些东西,但我几乎放弃了。任何建议都将受到高度赞赏。

干杯。

2 个答案:

答案 0 :(得分:0)

也许http://www.mediawiki.org/wiki/Manual:Hooks/ParserBeforeStrip可行:

“用于在应用任何内部处理之前处理原始维基代码”

答案 1 :(得分:0)

这是另一个“可能”,但您可以尝试使用模板和{{subst:}}命令的组合(请参阅transclusion)。

(另见Wikis and Wikipedia