界面信息修改
MediaWiki的大部分界面信息存放在Special:Allmessages里面,包括界面的文字、链接、气泡提示、热键等。进行定制时,请找到相应信息,点击左栏链接进行修改。
- 搜索结果页面中增加新建页面提示:参考本站nogomatch设置进行修改(仅对"进入"按钮有效,"搜索"按钮尚未解决)
- 修改页面左侧工具栏中的“帮助”链接:参见本站helppage设置,将“wikipedia:帮助”改为本地名字空间,例如“天下维客”、“help:帮助”图解过程(超级菜鸟可以考虑参阅^_^)
1、对于多语言版本,需要修改mediawiki:xxx、mediawiki:xxx/zh-cn、mediawiki:xxx/zh-tw多个版本(甚至/zh-hk、/zh-sg版本)。否则用户在自己的参数设置页面里选择不同语言参数时,会看到未修改语种下的内容未被更新。 2、mediawiki 1.5版本之后,同一表现元素换用了不同的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风格。
不够清楚!
天下维客的界面修改
修改Monobook文件
1、打开skins/Monobook.php,找到下面一行:<div id="globalWrapper">在此前增加自己制作的网站题头。 天下维客使用的题头示范代码如下:(实际代码请自行查看网页源代码)
<pre><table width="100%" height="64" border="0" cellspacing="0" id="allwiki"><tbody><tr> <td width="90" height="64" rowspan="2"><a href="http://www.allwiki.com/"><img src="http://网站LOGO.png" width="90" height="64" border="0" /></a></td> <td height="52" valign="bottom"><span style="font-size:36px;color:#FFF;"><b>天下维客</b></span> <span style="font-size=13px;color:#000;"> 你可以修改的网络知识库</span></td> <td width="188" align="right" valign="middle" style="font-size:12px"> <div id="head0"> <a title="天下维客,中文wiki专题网站" href="http://www.allwiki.com/wiki/天下维客">关于本站</a> </div></td> <td width="2%" rowspan="2"></td></tr> <tr><td colspan="2" align="right" style="COLOR:#fff;"><div id="head1"> <a title="天下维客首页" href="http://www.allwiki.com">首页</a> | <a title="网页改动记录" href="http://www.allwiki.com/wiki/Special:Recentchanges">最近更改</a> </div></td></tr></tbody></table>
</pre>
2、删除Monobook.php中原有的LOGO代码段落:<div class="portlet" id="p-logo"> <a style="background-image: url(<?php $this->text('logopath')?>);" href="<?php echo htmlspecialchars($this->data['nav_urls']['mainpage']['href'])?>" title="<?php $this->msg('mainpage')?>"></a> </div> <script type="<?php $this->text('jsmimetype')?>"> if (window.isMSIE55) fixalpha(); </script>
3、用utf-8格式保存并上传到服务器。
修改样式表文件
打开skins/monobook/main.css之后:
1、调整注册及编辑标签位置:
- 1-1 找到如下段落:
/* ** the personal toolbar */ #p-personal {
- 将该段落中的top改为76px
- 1-2 找到如下段落:
/* ** the page-related actions- page/talk, edit etc */ #p-cactions {
- 将该段落中的top改为87px
2、增加题头中的链接样式,直接在文件尾部顶行输入即可:
#head1 a{font-weight: bold;color:#fff;}#head0 a{font-size:12px;color:#008;}
3、用utf-8格式保存并上传到服务器,修改完成。以dreamweaver为例,您可以在打开monobook.php后,选择页面属性=>标题/编码=>utf-8就可以了。
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皮肤风格)
举例
举例示范如下:
* 导航文字 ** 文章标题|文章标题项 ** http://www.allwiki.com/bbs|直接网址项
在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:帮助”图解过程(超级菜鸟可一一一一
关于languageXX.php和程序升级
MediaWiki初次安装时,会从languageXX.php中获取提示信息存入数据库。然而,此后本文件将不再使用,因此试图修改本文件而调整界面信息的方法是无法达到目的!
mediawiki将大部分界面信息存放在数据库中而不是放在程序,其好处是以后升级时,界面提示信息不会因程序版本变动而丢失。(升级时仅仅补充新增提示信息,不修改已经存在地提示信息)
在mediawiki版本升级之后,可能会将某些提示信息的控制分离出来。这可能导致界面信息页面(mediawiki:xxx中的xxx)名称改变,并引起页面显示中出现新的意外字串。请继续按照前述办法进行查找和修改。
繁简共存版本的界面修改
对于安装时选用zh语种进行繁简并存的系统,对于同一条提示信息应同时修改6个版本:
- mediawiki:xxx
- mediawiki:xxx/zh
- mediawiki:xxx/zh-cn
- mediawiki:xxx/zh-tw
- mediawiki:xxx/zh-hk
- mediawiki:xxx/zh-sg
如有修改不到的话,则使用相应语种浏览器的用户(或用户在参数设置页面里选择不同语言时),会看到未修改的提示信息。
这就是为什么安装时不推荐zh语种进行繁简共存的原因。
想在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风格。
在1.5版本之后,MediaWiki增加了用户权限管理功能,允许创建或修改用户组。mediawiki通过设定用户组的权限、指定用户所在用户组来实现对用户权限的控制。
要更改一个用户所属的用户组, 请使用管理员(sysop)身份登录,然后到Special:Userrights(用户权限管理)。每个用户组都可以被赋予以下权限(许可)的一个组合。
目录[隐藏] |
权限的设定
-
在哪里设定?
- 权限的设定应该在 localsettings.php中添加、修改代码。参见 localsettings.php的修改方法。
- ( mediawiki的初始权限设定保存在includes/ defaultsettings.php中,可以参考这里的写法,但 不要直接改动这里)
-
如何设定权限?
- 权限设定代码如下:
$wgGroupPermissions['用户组']['权限名称'] = 取值;
-
- 用户组:设定权限的目标范围,*代表所有用户组,user代表登录用户,sysop代表管理员。更详细的介绍参见mediawiki的用户组。
- 注意:没有单独的匿名用户组。
- 权限名称:用户注册、页面访问、页面修改等都有单独的权限名称,参见下文说明。
- 取值:true代表允许,false代表禁止。二者取一。
- 一旦你更新了 localsettings.php,修改内容会即时生效。
-
设定实例:
- 例如禁止匿名用户修改页面:
$wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['user']['edit'] = true;
-
说明:由于无法单独控制匿名用户组,所以采用*首先对所有用户进行修改限制;然后单独对登录用户打开修改权限。
- 由于管理员也是登录用户,所以不必单独继续设置?(欢迎补充资料)
可用的权限
mediawiki已经内置了很多权限,到mediawiki 1.6基本完善,后续版本仍有少量补充。例如,用户注册、页面访问、页面修改、文件上传等都有单独的权限可供配置,从而使站点有良好的权限控制。常用权限如下:
- read:页面浏览
- edit:编辑页面
- createpage:创建新文章
- createaccount:创建帐户
- move:页面移动/文章改名
- upload:图片及文件上传
此外,mediawiki的权限具有良好的扩展性,可以增加细分的权限并进行扩展(extension)进行控制。
更多权限及详细介绍请参见Mediawiki的权限说明。
在数据库中手工改变用户组
用户权限包含在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');
管理组权限
要改变已有组的访问等级或添加新组,您需要能通过shell/ftp访问MediaWiki所运行的机器。您可以如下例所示在LocalSettings.php中将许可移除或添加到一个组.
禁止匿名访问者创建帐号(它取代了1.4中的 $wgWhitelistAccount)
$wgGroupPermissions['*']['createaccount'] = false;
要求用户登录后才能编辑(它取代了1.4中的$wgWhitelistEdit)
$wgGroupPermissions['*']['edit'] = false;
以下设置尽管不值得做,但可能您还是要做
$wgShowIPinHeader = false; # 对于没有登录的用户
它将对没有登录的用户移除页面顶部的讨论页链接,这从1.4以来没有改变.
如果设置了$wgWhitelistRead,您必须同时禁用'read'许可。这将作用在匿名帐户上。首页和登录页所用的任何CSS和JS页面也是可访问的,这将防止IE的脚本错误对话框出现.
$wgWhitelistRead = array( "首页", "Special:Userlogin", "-", "MediaWiki:Monobook.css" ); $wgGroupPermissions['*']['read'] = false;
在此列表中,首页并不是强制性的。要避免"请先登录"的重定向页,您可以改变includes/OutputPage.php中的loginToUse():
function loginToUse() { $titleObj = Title::makeTitle( NS_SPECIAL, "Userlogin" ); $this->redirect( $titleObj->getFullURL() ); }
您也可以定义新组,随后可以通过Special:Userrights(用户权限管理)为它添加用户:
$wgGroupPermissions['ninja']['delete'] = true; $wgGroupPermissions['ninja']['block'] = true; $wgGroupPermissions['ninja']['bot'] = true;
默认
作为参考,这里是在1.6中默认的组/许可(在includes/DefaultSettings.php中):
// 所有访问者隐含所在的组 $wgGroupPermissions['*' ]['createaccount'] = true; $wgGroupPermissions['*' ]['read'] = true; $wgGroupPermissions['*' ]['edit'] = true; $wgGroupPermissions['*' ]['createpage'] = true; $wgGroupPermissions['*' ]['createtalk'] = true; // 所有登录用户隐含所在的组 $wgGroupPermissions['user' ]['move'] = true; $wgGroupPermissions['user' ]['read'] = true; $wgGroupPermissions['user' ]['edit'] = true; $wgGroupPermissions['user' ]['createpage'] = true; $wgGroupPermissions['user' ]['createtalk'] = true; $wgGroupPermissions['user' ]['upload'] = true; $wgGroupPermissions['user' ]['reupload'] = true; $wgGroupPermissions['user' ]['reupload-shared'] = true; $wgGroupPermissions['user' ]['minoredit'] = true; // 所有通过 $wgAutoConfirmAge 的用户隐含所在的组 $wgGroupPermissions['autoconfirmed']['autoconfirmed'] = true; // 具有机器人特权的用户可使他们的编辑默认在各种日志页面隐藏起来 $wgGroupPermissions['bot' ]['bot'] = true; $wgGroupPermissions['bot' ]['autoconfirmed'] = true; // 大多数额外的许可功能都在这里 $wgGroupPermissions['sysop']['block'] = true; $wgGroupPermissions['sysop']['createaccount'] = true; $wgGroupPermissions['sysop']['delete'] = true; // 可以查看被删除的条目,单不能查看或重新载入被删除的文本 $wgGroupPermissions['sysop']['deletedhistory'] = true; $wgGroupPermissions['sysop']['editinterface'] = true; $wgGroupPermissions['sysop']['import'] = true; $wgGroupPermissions['sysop']['importupload'] = true; $wgGroupPermissions['sysop']['move'] = true; $wgGroupPermissions['sysop']['patrol'] = true; $wgGroupPermissions['sysop']['protect'] = true; $wgGroupPermissions['sysop']['rollback'] = true; $wgGroupPermissions['sysop']['upload'] = true; $wgGroupPermissions['sysop']['reupload'] = true; $wgGroupPermissions['sysop']['reupload-shared'] = true; $wgGroupPermissions['sysop']['unwatchedpages'] = true; $wgGroupPermissions['sysop']['autoconfirmed'] = true;
在LocalSettings.php中增加如下代码,就可以禁止匿名用户对mediawiki文章的修改。(本方法适用于mediawiki 1.5以上的版本)$wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['user']['edit'] = true;在保存localsettings.php之后,该设置就起作用了。这时,所有用户必须登录后才可以编辑。
如果不需要对所有页面进行保护,而仅仅保护首页等少量内容,不必采用上述手段,使用页面保护功能更方便。