2008-09-08 55 views
1

我創建了幾個鏈接到MediaWiki自定義標籤,在這裏使用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莫爾 - 我所看到的,以及,但這並不從渲染從解析wiki文字的休息站的頁面,只是MediaWiki的引擎。就好像擊中自定義函數一樣,正在發信號通知mediawiki處理完成。我正在潛入兔子洞,但希望有人看到這種行爲。

+0

見下,我回答了問題 – 2008-09-11 21:31:29

回答

0

從未使用過Mediawiki,但在我的經驗中,這種問題表明發生了一個php錯誤,但是被@操作符抑制或者因爲php錯誤輸出到屏幕被關閉。

我不喜歡使用這種調試方法,但是當絕對和完全沮喪在PHP中,我將開始在每隔幾行(總是用一個標記,所以我記得稍後刪除它們)放置echo語句,錯誤來自於。最終,你會到達兔子洞的底部,並找出有問題的代碼行是什麼。

0

傻了。

只好關閉標籤。

而不是<tag1>我不得不將其更改爲<tag1 /><tag1></tag1>

現在所有的作品!