Mediawiki扩展编写实战

  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扩展编写实战,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。