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