|
关于扩展插件
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来扩展
1. 新建扩展文件,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");
o 第一个参数,是标签名,第二个参数是标签处理函数的函数名
o 函数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调用钩子处理函数
o 钩子函数的三种返回值,true,false,string
o 钩子函数的参数
o 除了钩子函数,还有,代码段,对象....
* 写钩子函数
通过Special来增加你想要的功能
* 增加自己的特殊页面SpecialMySpecPage.php
* 增加自己的函数wfSpecialMySpecpage()函数,并在这里做你想做的事情
* 把这个特殊页面加到Special:Specialpages里,即把SpecialPage或其它二个实例增加到$wgSpecialPages数组中
动态页面列表插件
文件代码在DynamicPageList.php,插件说明在动态页面列表 需要注意的是在设置文件中加include的时候 多隔几行,要不效果可能显示不出来。
|
|