2011-03-27 46 views
1

首先,我同时使用PHP 5.3.5,MySQL 5.5.8和Apache 2.2.17设置了MW 1.16和1.17。如何在保存到数据库之前用MediaWiki中的自定义标记替换内容?

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

$wgExtensionFunctions[] = "wfTestExtension"; 

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

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

我想要做的是,如果我在添加或编辑表单中输入<myTag>Blah blah blah</myTag>,我希望能够改变内部MyTag的内容之前将其保存到数据库中。我应该使用什么机制?我假设挂钩?例如,与ArticleSave钩,在$文本VAR已经有<myTag>剥离出来,所以没有试图解析字符串并搞清楚它是什么,原来是里面的<myTag>

我已经花了几个小时的方式试图在谷歌上找到一些东西,但我几乎放弃了。任何建议都将不胜感激。

干杯。

回答

0

也许http://www.mediawiki.org/wiki/Manual:Hooks/ParserBeforeStrip将工作:

“用来处理原始wiki代码之前应用任何内部处理”

+0

这就是我一直在尝试的。函数的定义如下: – Kirk 2011-03-28 01:58:14

+0

function fnMyHook(&$ parser,&$ text,&$ strip_state){...} - 但是,$ text并没有给我提交的正文。相反,它给我$ 1 - {{SITENAME}} $ 1 - {{SITENAME}} {{SITENAME}} {{SITENAME}}({{CONTENTLANGUAGE}}此页面已被浏览过{{PLURAL:68 | once | 68次}}。关于{{SITENAME}}关于{{SITENAME}} – Kirk 2011-03-28 01:59:25

相关问题