2011-03-27 12 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

相關問題