|
Wikipedia大家都很熟悉,而Mediawiki則是Wikipedia背后的功臣,整個(gè)Wikipedia都構(gòu)建在mediawiki之上,mediawiki的穩(wěn)定性和高效性值得信賴(lài),同時(shí)Mediawiki非常易于擴(kuò)展,可以通過(guò)Extension的方式添加非常多的功能,而且Mediawiki的Extension社區(qū)也非常活躍,大家可以到Mediawiki Extension目錄下去下載自己需要的擴(kuò)展程序。
上周末,幫朋友寫(xiě)了一些Mediawiki的擴(kuò)展,立即被Mediawiki的強(qiáng)大擴(kuò)展性折服,主要實(shí)現(xiàn)的功能有:增加Google Analytics統(tǒng)計(jì)、自定義標(biāo)題、增加Google Adsense廣告之類(lèi),寫(xiě)Mediawiki的擴(kuò)展,最好的參考是Mediawiki擴(kuò)展手冊(cè):http://www.mediawiki.org/wiki/Manual:Extensions。
Mediawiki的擴(kuò)展主要有Tag Extension、Parser Functions、Hooks、Special Pages、Skins、Magic Words,對(duì)應(yīng)的中文是:標(biāo)簽擴(kuò)展(自定義wiki標(biāo)簽,比如xxxx)、解析擴(kuò)展(和標(biāo)簽類(lèi)似,不過(guò)呈現(xiàn)方式稍有不通,為{{#foo : bar}})、鉤子、特殊頁(yè)面、皮膚、魔術(shù)關(guān)鍵字,我這里演示的是Parser Functions和Hooks,其他的差不多類(lèi)似。
一、增加Google Analytics統(tǒng)計(jì)和Google Adsense廣告
原理很簡(jiǎn)單,我們?cè)陧?yè)面顯示之前,把Google Analytics和Google Adsense的代碼append到要顯示的內(nèi)容即可,代碼:
<?php
/**
* 安全設(shè)置,防止惡意調(diào)用
*/
if (!defined('MEDIAWIKI')) {
die( 'This file is a MediaWiki extension, it is not a valid entry point' );
}
/**
* 擴(kuò)展的基本信息
*/
$wgExtensionCredits['other'][] = array(
'path' => __FILE__,
'name' => '插件名稱(chēng)',
'version' => '1.0',
'author' => '作者',
'descriptionmsg' => '簡(jiǎn)要說(shuō)明',
'url' => '作者地址',
);
/**
* 注冊(cè)一個(gè)鉤子,在頁(yè)面顯示之前,處理頁(yè)面顯示內(nèi)容
*
* 全部鉤子列表:http://www.mediawiki.org/wiki/Manual:Hooks
*
*/
$wgHooks['BeforePageDisplay'][] = 'dzBeforePageDisplay';
function dzBeforePageDisplay(&$out, &$skin) {
/**
* 在LocalSettings.php定義$wgDangZhiAppendHtml
* 把要添加的Google Analytics和Google Adsense代碼放里面
*/
global $wgDangZhiAppendHtml;
// 頁(yè)面添加HTML
$out->addHTML($wgDangZhiAppendHtml);
// 記得返回true,收工
return true;
}
it知識(shí)庫(kù):Mediawiki擴(kuò)展編寫(xiě)實(shí)戰(zhàn),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。