Mediawiki简明扩展教程
天下维客,你可以修改的网络知识库
(重定向自Mediawiki的插件扩展)
| MediaWiki扩展简明教程 | Inputbox帮助文档 | 使用Spam黑名单 | 内容折叠隐藏 | 动态文章列表 | 指定图片链接 |
| 代码高亮处理 | 预置初始编辑文本 | 页面访问限制 | 所见即所得编辑器 | QQ在线信息 | |
| 交流:扩展使用 | 投票与评分 | 内容随机展示 | wikitex | 改进设想 | ...更多 |
| 加入google地图和51地图标注功能 | Ajax五颗星评分插件 |
目录 |
[编辑]
关于扩展插件
mediawiki不但提供了基本的功能,而且预留了扩展功能。其目的就是方便二次开发,扩充wiki功能。一般mediawiki的插件都是PHP文件。mediawiki安装目录下的extensions即是放置扩展插件的目录。
[编辑]
插件启用
在extensions文件夹放置插件后,在localsettings.php文件添加代码,一般是如下格式:
include("extensions/插件文件名");
[编辑]
插件简介
[编辑]
CharInsert
- 本插件的功能是使得mediawiki可以解释<charinsert></charinsert>标签,从而实现在编辑界面时,点击此标签内的字符即可将其输入到编辑区内。
- 安装:将CharInsert.php文件置于extensions文件夹内。在localsettings.php文件中加入如下代码(最好隔几行加入要不有的可能不显示):
include("extensions/CharInsert.php");
- 进入特殊页面之系统界面,修改编辑界面下的文本所在的name,直接修改MediaWiki:Copyrightwarning。尝试加入<charinsert>代码在其中加入符号,举例如下:
中文标点: <charinsert>“+” ‘+’ 「+」 『+』 (+) 【+】《+》 〈+〉</charinsert>
此时,编辑界面下应有可以点击输入的中文标点了。
- 相关链接:
http://cvs.sourceforge.net/viewcvs.py/wikipedia/extensions/CharInsert/ http://meta.wikimedia.org/wiki/Category:Mediawiki_Extensions
[编辑]
关于如何扩展有wiki之我见
[编辑]
概述
- 方法一,通过meta来扩展
- 方法二,通过hooks来扩展
- 方法三,meta和hook并不能满足需要的话.那么可以通过SpecialPage来达到你所想要的.我就是这么做的
[编辑]
通过meta来扩展
- 新建扩展文件,extensions/filename.php
把extensions/filename.php包含到LocalSetting.php中
- require_once('extensions/filename.php")
注册meta标签到$wgExtensionFunctions数组中,通知wiki处理该扩展函数
- $wgExtensionFunctions[] = "wfExFun"
- 定义一个函数wfExfun,如function wfExFun(){}
- 在函数wfExFun()注册你的meta.,该语句为$wgParser->setHook("tclist","tclist");
- 第一个参数,是标签名,第二个参数是标签处理函数的函数名
- 函数tclist()有二个参数,即$input和$argv,要求返回string
- input表示标签内容<tclist>tc_list_mesg</tclist>,其中$input="tc_list_mesg"
- argv是一个关联数组容器,装载着标签属性,比如<tclist tcid="52"></tclist>,则$argv['tcid']="52"
filename.php源码 <?php $wgExtensionFunctions[] = "wfExFun"; /**
*关联标签和标签处理函数 */
function wfExFun(){
global $wgParser;
$wgParser->setHook("tclist","tclist");
}
/**
* */
function tclist($input,$argv){
$returnstr = ""; if(!empty($input)) $returnstr .= "
".wfMsg('meta_content').":{$input}"; if(!empty($argv['tcid'])) $returnstr .= "
".wfMsg('meta_attri_id').":{$argv['tcid']}"; return $returnstr;
} ?>
如此,则可以使用自己的标签了 <tclist tcid="4856"></tclist> <tclist></tclist> <tclist>测试</tclist>
[编辑]
通过hooks来扩展
- 你确保看了hooks doc.
- 挂钩子
- 注册钩子函数 ,使钩子事件和钩子处理函数关联对应
- 通知wiki调用钩子处理函数
- 钩子函数的三种返回值,true,false,string
- 钩子函数的参数
- 除了钩子函数,还有,代码段,对象....
- 写钩子函数
[编辑]
通过Special来增加你想要的功能
- 增加自己的特殊页面SpecialMySpecPage.php
- 增加自己的函数wfSpecialMySpecpage()函数,并在这里做你想做的事情
- 把这个特殊页面加到Special:Specialpages里,即把SpecialPage或其它二个实例增加到$wgSpecialPages数组中
[编辑]
动态页面列表插件
文件代码在DynamicPageList.php,插件说明在动态页面列表 需要注意的是在设置文件中加include的时候 多隔几行,要不效果可能显示不出来。

