扩展手册

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Extensions and the translation is 100% complete.

Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Mirandés • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎italiano • ‎magyar • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎Ελληνικά • ‎български • ‎русский • ‎العربية • ‎سنڌي • ‎پښتو • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어
Gnome-preferences-other.svg 扩展:Manual:Extensions 开发Manual:Developing extensions 标签扩展Manual:Tag extensions 手册:解析器函数Manual:Parser functions 钩子Manual:Hooks 特殊页面Manual:Special pages 手册:皮肤Manual:Skins 手册:魔术字Manual:Magic words APIAPI:Extensions Content modelsManual:Page content models

什么是扩展?

MediaWiki扩展工具

扩展允许您定制MediaWiki的外观和工作方式。

Wiki用户可以浏览现有的扩展请求一个新的扩展。 系统管理员可在他们管理的MediaWiki安装副本上安装(或移除)扩展。 开发人员可以编写新扩展或者改进或维护现有扩展

根据关键字搜索扩展:

安装插件可以实现各人不同的目的:

虽然许多扩展由MediaWiki的开发者维护,但其他由第三方开发者编写。 这样会导致一个结果,会出现bug,他们不能保证能够和其他扩展相互兼容。 一些扩展不能被维护,并不是所有的扩展都能工作在所有的MediaWiki版本。 使用任何扩展,特别是那些标记着不稳定的扩展,当你使用时会有所风险。 当使用一个扩展需要修补MediaWiki核心代码或者数据库将会为空时,请确认备份好你的数据库和MediaWiki核心代码,避免导致你的wiki从此中断。

浏览扩展插件

您可浏览分类:按分类排列的扩展Category:Extensions by category以了解已有插件的功能范围。 关于如何安装这些插件或者如何编写自己的插件,参见后续章节。

检查已安装的扩展

只有那些具备访问服务器文件系统的管理员可以安装用于MediaWiki的扩展插件,但是任何人都可以点击Special:Version页面获得当前有哪些扩展插件被用在这个MediaWiki网站上的信息。 例如,点击这里可以了解哪些扩展插件被用在了英文维基百科。

安装扩展插件

安装完MediaWiki后即可安装扩展插件。 添加一个插件需要下面几个步骤:

  1. 在您开始之前
    少数扩展插件需要安装补丁。其中大多数提供了专为unix安装命令而设计的使用说明。 这需要命令行权限(SSH)来运行这些在扩展插件帮助页面上给出的命令。
  2. 下载您的扩展。
    Extension Distributor可帮你选择和下载最受欢迎的扩展插件。
    扩展插件通常以模块的程序包形式发布。 它们通常位于$IPManual:$IP/extensions/的子目录中。 在维基媒体Git存储库存储的扩展列表位于git:mediawiki/extensions。 一些不使用版本控制的扩展都不推荐使用。
    bundlescomposercomposer包存储库中也提供了一些扩展。
  3. 安装您的扩展。.
    通常, 在LocalSettings.phpManual:LocalSettings.php文件的结尾(但应在PHP代码结束符"?>"之前)添加下列代码:
    // mw.v 1.24.x or less
    require_once "$IP/extensions/extension_name/extension_name.php";
    // mw.v 1.25.x or above
    wfLoadExtension( '<extension-name>' );
    
    这一条将强制PHP解释器来读取文件扩展,从而使其到MediaWiki访问。
    某些扩展可能与维护脚本冲突,例如,例如能直接访问$_SERVER(不推荐)。
    在这种情况下,他们可以被包裹在条件下进行运行,以让维护脚本仍然可以运行。
//for mw.v 1.24.x or less
if ( !$wgCommandLineMode ) {
   require_once "$IP/extensions/extension_name/extension_name.php";
}
//for mw.v 1.25.x or above
if ( !$wgCommandLineMode ) {
   wfLoadExtension ( '<extension-name>' );
}
对于任何需要自定义命名空间的扩展,维护脚本importDump.phpManual:ImportDump.php将失败,这些命名空间在上面的条件中被“包含”,例如Extension:Semantic MediaWikiExtension:Semantic MediaWikiExtension:Semantic FormsExtension:Semantic Forms
确保为扩展设置了所需的权限!
虽然此安装过程对于大多数扩展来说已足够,但某些扩展需要不同的安装过程 检查您的扩展文档以获取详情。
如果要在LocalSettings.php中更改配置变量,则必须在包含扩展名的之后执行此操作。 否则,分机中定义的默认值将覆盖您的设置。
小心! 小心: 虽然扩展声明“可以”被放置在LocalSettings.php文件中任何地方,但对于1.17版本以下的MediaWiki,请不要放在代码require_once "includes/DefaultSettings.php";行之前。 这样做会使扩展设置功能阵列空白,导致不安装任何扩展,并且在您修复之前可能会使您的wiki无法访问!


升级扩展

当你升级你的MediaWiki时,部分扩展插件也需要升级,而其他部分扩展插件则可能支持向上兼容。 升级某个扩展插件到新版本:

  1. 下载新版本扩展插件
  2. 替换extension/ExtensionName目录下所有文件为新版本的文件。 不要删除LocalSettings.php中存在的扩展插件的配置。
  3. 根据不同的扩展插件,你可能需要运行Update.php维护脚本。 多数扩展插件会提及是否需要运行这个脚本 (在不必要的情况下运行update.php不会对整体造成影响,所以你不用因为害怕而不去运行它)。 如果你没有使用命令行的权限,你也可以使用网络更新
  4. 你需要做的就是这些 在大多数情况下,LocalSettings.php中扩展插件的配置在新版本下也能运作。
這手冊包含超過99%的拓展 如果該拓展有與你不同的標準,請跟隨該標準。

卸载一个扩展

扩展的启用通常是通过在LocalSettings.php中添加一行语句来实现的,基本上是像这样的:

// mw.v 1.24.x or less
require_once "$IP/extensions/extension_name/extension_name.php";
// mw.v 1.25.x or above
wfLoadExtension( '<extension-name>' );
根据您要卸载的扩展,可能还会在安装时完成其他内容,您现在要撤消这些内容。 有关详细信息,请参阅有关安装扩展的部分。
  1. 移除此行,这样扩展就卸载了。 如果您有需要,(并且您不希望今后再使用此扩展的话)您可以前往文件夹“extensions/”,移除此扩展文件。
  2. 也许你在LocalSettings.php中还有其他一些行,它们与你想要删除的扩展名有关。 最有可能的是,这将是某些用户有权访问由扩展程序提供的页面的行。 这些行包含变量“$wgGroupPermissions”并在那里进行一些设置。 至于它们与来自已删除扩展的权限有关,您也可以删除这些行。
  3. 也许您的扩展也在您的数据库里添加了专栏。 在您卸载扩展后,maintenance/update.php会在您运行它时将其删除。

开发扩展

该复杂话题在开发扩展手册页面作统一处理。

参见

扩展Manual:Extensions: 分类Category:Extensions所有Category:All extensions申请手册:标签扩展Manual:Tag extensions扩展FAQExtensions FAQ扩展钩子注册扩展默认名字空间