«
Mediawiki的配置和修改方法

时间:2011-2-16    作者:smarteng    分类: PHP相关


1、界面设置 

在MediaWiki中大部分的界面信息都存放在Special:Allmessages页面里面,包括界面的文字、链接、气泡提示、热键等等,杂七杂八的,非常多,你可以在直接输入Special:Allmessages来根据自己实际情况修改配置。至于具体的都是些什么内容,本文就不在多说了,您可以通过google找到更具体的,呵呵! 

2、上传文件设定 

修改 LocalSettings,$wgEnableUploads就是控制上传的参数,true允许,false不允许,默认应该是允许的。您还需要将 images目录加上可写入的权限,要不然用户无法上传。通过$wgFileExtensions = array('','','')设定允许上传的文件类型,$wgFileBlacklist = array('','','')设定不允许上传的文件类型。 

3、修改为/wiki/式网址。 

修改LocalSettings.php 

$wgArticlePath = "/wiki/$1"; 

再修改httpd.conf(apache配置文件) 

Alias /wiki /filesystem/path/to/you/site/index.php 

Alias /index.php /filesystem/path/to/you/site/index.php 

备注:网上还有很多修改为/wiki/式网址的方法,我都测试过,发现除了使用apache别名功能外,还就就是利用.htaccess编写rewrite rule了。具体的,大家可以google下。 

4、提示信息修改 

比较常用的提示信息有以下几个: 

MediaWiki:Mainpage 首页 

MediaWiki:pagetitle (浏览器上方)网页标题 

MediaWiki:Privacy (页脚)隐私政策 

MediaWiki:Aboutpage (页脚)关于本站 

MediaWiki:Disclaimers (页脚)免责申明 

MediaWiki:Sidebar (测栏)导航栏 格式:URL|标题 

5、LOGO修改 

最简单的,直接替换/skins/common/images/wiki.png文件,当然,你也可以通过设定$wgLogo来设定logo文件位置。 

6、使用者权限修改 

$wgGroupPermissions['*' ]['createaccount'] = false; 

$wgGroupPermissions['*' ]['read'] = true; 

$wgGroupPermissions['*' ]['edit'] = false; 

$wgGroupPermissions['*' ]['createpage'] = false; 

$wgGroupPermissions['*' ]['createtalk'] = true; 

Mediawiki修改左侧导航条 

当需要在mediawiki左侧导航条的内容时,请在搜索栏中输入"mediawiki:sidebar",然后进行编辑(需要以站长或管理员身份登录)。 

 

以新窗口打开外部链接 

打开 "includes/Linker.php"

找到 "function getExternalLinkAttributes"

在下面一段代码之後

$r = ($class != '') ? " class='$class'" : " class='external'"; 

增加以下代码: 

$r .= " target=\"_blank\""; 

这样就能让所有的外部链接以新窗口形式打开了。 

由于MediaWiki的页面缓冲机制,可能造成这个修改的效果不能迅速完全反映出来。 

如何清除页面缓冲? 

在普通页面的网址后面添加"&action=purge"参数可以更新服务器缓冲数据,这可能需要几分钟之后才能见到效果。

在LocalSettings.php中设置$wgCacheEpoch全局变量,强制现有缓冲过期(参见DefaultSettings.php)  

信息设定说明 

mediawiki:sidebar的原始信息如下: 

* navigation 

** mainpage|mainpage 

** portal-url|portal 

** currentevents-url|currentevents 

** recentchanges-url|recentchanges 

** randompage-url|randompage 

** helppage|help 

** sitesupport-url|sitesupport 

第一行(一个前导*)表示导航栏的名称,其提示文本在"mediawiki:navigation"页面中修改,也可以直接输入文字信息(文字不能与内部mediawiki参数页面重名)。 

后续行(两个前导*)表示实际导航栏的内容,其格式为"链接网址|显示文本"。其中,链接网址有三种类型: 

直接输入http网址,例如直接输入"http://www.allwiki.com/bbs"

文章页面标题,例如输入"天下维客"代表站内文章"[[天下维客]]"的网址

mediawiki 

名字空间的参数页,例如输入"mainpage"代表文字信息参数页面"[[mediawiki:mainpage]]"的网址。此类字串还有 

helppage、portal-url等,请到special:allmessages里面查看更多的此类字串。 

显示文本的设定与导航栏名称设定类似,可以: 

直接输入文字信息

使用mediawiki名字空间参数页的标题缩写,例如上文默认文本中的"randompage"、"sitesupoort"分别代表"[[mediawiki:randompage]]"和"[[mediawiki:sitesupport]]"。

用户可根据需求删除/增加mediawiki:sidebar页面中的项目,修改后左侧导航栏就会发生相应改变。(本方法适用于mediawiki默认的monobook皮肤风格) 

Mediawiki提示信息修改 

在mediawiki安装完成之后,界面上仍然会有很多英文提示信息(即使选择了zh-cn语种)。这是正常的,需要站长对这些信息进行本地化修改。 

MediaWiki的大部分界面信息存放在Special:Allmessages里面,包括界面的文字、链接、气泡提示、热键等。只有极少量的内容放在localsettings.php中。 

系统界面修改方法 

Special:Allmessages是一个称为"系统界面"的特殊页面,可以在搜索框中输入"Special:Allmessages"来直接访问。也可以访问特殊页面下的系统界面. 

当发现mediawiki中的提示信息为英文时,请进入该页面,搜索找到相应信息,然后点击表格左栏中链接进行修改。 

请注意:必须以站长或者管理员身份登录后才能修改界面信息! 

常用提示信息 

首页的标题: MediaWiki:Mainpage 

,可改为"维客首页"之类,修改后网站将采用指定的文章作为首页。 

页脚的Privacy policy: MediaWiki:Privacy 

,网站的隐私政策,可改为相应文章标题(如"隐私政策")或"-"禁止显示本项。 

页脚的Disclaimers: MediaWiki:Disclaimers 

,网站的免责声明,可改为相应文章标题(如"天下维客免责声明")或"-"禁止显示本项。 

浏览器标题栏提示: MediaWiki:pagetitle 

,请按需求修改(如"$1 - allwiki - 维客家园",其中$1代表文章名称)

搜索结果页面中增加新建页面提示:参考本站nogomatch设置进行修改(仅对"进入"按钮有效,"搜索"按钮尚未解决)

修改页面左侧工具栏中的"帮助"链接:参见本站helppage设置,将"wikipedia:帮助"改为本地名字空间,例如"天下维客"、"help:帮助"图解过程(超级菜鸟可以考虑参阅^_^)

 

繁简共存版本的界面修改 

对于安装时选用zh语种进行繁简并存的系统,对于同一条提示信息应同时修改6个版本: 

mediawiki:xxx

mediawiki:xxx/zh

mediawiki:xxx/zh-cn

mediawiki:xxx/zh-tw

mediawiki:xxx/zh-hk

mediawiki:xxx/zh-sg

如有修改不到的话,则使用相应语种浏览器的用户(或用户在参数设置页面里选择不同语言时),会看到未修改的提示信息。 

这就是为什么安装时不推荐zh语种进行繁简共存的原因。 

要更改一个用户所属的用户组, 请使用管理员(sysop)身份登录,然后到Special:Userrights(用户权限管理)。每个用户组都可以被赋予以下权限(许可)的一个组合,同时还可以设定一些用户本身的权限分配! 

如何设定/取消Sysop(管理员)权限? 

对于1.5以上版本: 

到Special:Userrights 

页面,输入用户名,在列表中选择"sysop"权限即可;再次选定并确认则取消管理员权限。注意仅有"Bureaucrat"(行政管理员)权限的帐号才能进行以上设定。 

Mediawiki增加友情链接侧栏
想在mediawiki工具栏下方添加友情链接,请打开skins/Monobook.php,找到如下两行:

< ? php if (  $ this - > data[ 'language_urls' ]  )  {  ? > < div id= "p-lang"  class= "portlet" >
   < h5> < ? php $ this - > msg( 'otherlanguages' )  ? > < / h5>

在前面添加:

< div class= "portlet"  id= "p-tb" >
   < h5> 友情链接< / h5>
   < div class= "pBody" >
     < ul>
     < li id= "feedlinks" "><a href=" http: / / www. allwiki. com" target=" _blank"><img src=" http: / / www. allwiki. com/ images/ allwiki_logo. gif" border=" 0" alt=" 天下维客" /></a></li>
     <li id="
feedlinks"" > < a href= "http://zh.wikipedia.org"  target= "_blank" > < img

src= "http://upload.wikimedia.org/wikipedia/zh/c/ce/Wiki_button.png"  border= "0"  alt= "中文维基百科"  / > < / a> < / li>
     < / ul>
     < / div>
 < / div>

请根据需要,修改上面内容中的链接、图片网址和alt字串(文字提示)。
    * 注意:①上述内容必须使用UTF-8格式进行存盘,否则汉字显示乱码;②本修改只针对默认的monobook风格。

关于网站提速
很多人感到MediaWiki的运行速度非常之慢,其实这里面有很多原因是页面样式的问题。请到“参数设置→皮肤”中选择“科隆香水蓝44”,体会迅捷如飞的感觉!

时间显示设置
在LocalSetting.php的倒数第三行加入:

$ wgLocaltimezone  =  "Asia/Shanghai" ;  

putenv( "TZ=$wgLocaltimezone" ) ;  

$ wgLocalTZoffset  =  date( "Z" )  /  60;



阻止新用户注册
更改LocalSetting.php,添加

$ wgGroupPermissions [ '*'  ] [ 'createaccount' ]  =  false ;

注意:阻止新用户注册,此时管理员可以到特殊页面上的用户登录页面(Special:UserLogin)里,输入希望为其建立帐户的某人的用户名与电子邮件地址,然后点击通过eMail(by email)按钮递交,系统将创建帐号并将随机生成的密码发送到指定email里。

禁止匿名用户编辑
在include/DefaultSettings.php里修改:

$ wgGroupPermissions [ '*'  ] [ 'createaccount' ]  =  false ;
$ wgGroupPermissions [ '*'  ] [ 'read' ]  =  true ;
$ wgGroupPermissions [ '*'  ] [ 'edit' ]  =  false ;


设置匿名用户可读内容

 

$ wgWhitelistRead  =  array(  "Main Page" ,  "Special:Userlogin"  ) ;
$ wgGroupPermissions [ '*'  ] [ 'read' ]  =  false ;

 

注意:具体需要对应自己的站点链接,而对于多字节语言的MediaWiki,例如中文首页链接index.php?title=%E9%A6%96%E9%A1%B5,这首页中文字符PHP可能无法正确解码。需要利用urldecode()函数转换一下,写为:

$ wgWhitelistRead  =  array(  urldecode( "%E9%A6%96%E9%A1%B5" )  ;


对没有登录的用户移除页面顶部的讨论页链接
在LocalSetting.php里添加

$ wgShowIPinHeader  =  false ;


在数据库中手工改变用户组
用户权限包含在user_groups表中,该表有两个字段,分别是ug_user和ug_group。对用户所属的每一个组,都必须有一行插入。您必须从用户表(users)中获知用户的ID。以下的SQL查询语句将能完成此功能。在下例中将 1 替换为从users表中得到的ID号.

INSERT  INTO  user_groups ( ug_user,  ug_group)  VALUES  ( '1' ,  'bureaucrat' ) ;  INSERT  INTO  user_groups ( ug_user,  ug_group)  VALUES  ( '1' ,  'sysop' ) ;


其它登陆用户不能编辑,只有DB2组的用户可以编辑
在LocalSetting.php里添加

$ wgGroupPermission [ 'DB2' ] [ 'read' ]  =  true ;
$ wgGroupPermissions [ 'DB2' ] [ 'edit' ] =  true ;
$ wgGroupPermissions [ 'user' ] [ 'edit' ] = false ;

修改页面顶部的Tab标签:

新建一个扩展文件extensions/AR-Tabs.php

 

<?php
 $wgHooks['SkinTemplateContentActions'][] = 'ReplaceTabs';
 function ReplaceTabs ($content_actions) {
     unset( $content_actions['talk'] );    //only this to remove an action
     unset( $content_actions['viewsource'] );    //only this to remove an action
//想去掉什么就在这里unset;
 }
 ?>
在 LocalSettings.php 添加:







require_once("extensions/AR-Tabs.php");
打完收工~~