This page is a translated version of the page Manual:Extensions and the translation is 96% complete.
Outdated translations are marked like this.

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

虽然许多某些扩展是由MediaWiki的开发者维护,但其餘的是由第三方开发者所编写。 这样会导致一个结果,会出现bug,他们不能保证能够和其他扩展相互兼容。 一些扩展不被维护;并不是所有的扩展都能在所有的MediaWiki版本運作。 使用任何扩展,特别是那些标记着不稳定的扩展,当你使用时会有所风险。 當你使用需要修補核心軟體的扩展時,確認已先備份你的資料庫。 這有助於你避免弄壞你的維基頁面的風險。

扩展的类型

  解析器标签

解析器标签扩展了内置的wiki标记,使其擁有无论是简单的字符串处理还是完整的信息检索,的額外功能。

  解析器函数

解析器函数是特殊的wiki标记语法,可以与页面中的其他wiki元素“交互”,并提供特定的输出。

  函数钩

挂钩允许在发生某些已定义事件(例如保存页面或登录用户)时执行自定义代码。

  特殊页面

特殊页面是由软件根据需要创建以执行特定功能的页面。

  皮肤

皮肤允许用户自定义MediaWiki的外观。

  魔术字

魔术字是一种将各种wiki文本字符串映射到与函数关联的单个ID的技术。

  API

MediaWiki提供了一个动作API,一种允许访问一些wiki功能的Web服务,如身份验证,页面操作和搜索。

  页面内容模型

MediaWiki 1.21 中引入的ContentHandler 使得Wiki頁面可以由除Wikitext之外的數據組成,例如JSON或Markdown。

  认证

MediaWiki提供SessionManager和AuthManager两个与身份验证相关的框架,通过自定义身份验证机制增强安全性。

寻找扩展

浏览扩展插件

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

检查已安装的扩展

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

流行扩展

有许多寻找流行扩展的方法。

第一种是查找与MediaWiki捆绑在一起的扩展(一个定期会审查的列表,任何人都可以提供添加新扩展的建议)。

通过ExtensionDistributor 机制从MediaWiki.org下载的扩展会收集一些统计信息。 下载次数最多的前15个扩展列在Special:ExtensionDistributor处,扩展的下载次数显示在其信息框中。 不过需要留意的是,这些数字并不包括通过 GitComposer 下载扩展。

第三种选择是查看WikiApiary 中安装某些扩展的wiki数量。 这个网站的优点是显示的是实际的安装数而不是下载数(即它查询wiki的API),但也(截至2023年)并不是最新的。 这也不包括私有wiki的安装数。


安装扩展插件

有关进一步指南,另请参阅Manual:Extensions/Installation and upgrade

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

  1. 在您开始之前
    少数扩展插件需要安装补丁。其中大多数提供了专为unix安装命令而设计的使用说明。 这需要命令行权限(SSH)来运行这些在扩展插件帮助页面上给出的命令。
  2. 下载您的扩展。
    Extension Distributor可帮你选择和下载最受欢迎的扩展插件。
    扩展插件通常以模块的程序包形式发布。 它们通常位于$IP /extensions/的子目录中。 在维基媒体Git存储库存储的扩展列表位于git:mediawiki/extensions。 一些不使用版本控制的扩展都不推荐使用。
    bundlescomposer 包存储库中也提供了一些扩展。
    推荐在安装前阅读 README 文件。 通常包含关于配置的重要信息。
  3. 安装您的扩展。
    LocalSettings.php 文件的结尾添加下列代码:
    wfLoadExtension( 'ExtensionName' );
    
    这一条将强制PHP解释器来读取文件扩展,从而使其到MediaWiki访问。
    某些扩展可能与维护脚本冲突,例如它們能直接访问$_SERVER(不推荐)。
    在这种情况下,他们可以被包裹在条件下进行运行,以让维护脚本仍然可以运行。
    if ( !$wgCommandLineMode ) {
       wfLoadExtension ( 'ExtensionName' );
    }
    
    对于任何需要自定义命名空间的扩展,维护脚本importDump.php 将失败,这些命名空间在上面的条件中被包含,例如扩展:Semantic MediaWiki Extension:页面表单
确保为扩展设置了所需的权限!
虽然此安装过程对于大多数扩展来说已足够,但某些扩展需要不同的安装过程。 检查您的扩展文档以获取详情。
如果要在LocalSettings.php中更改配置变量,则必须在包含扩展名的之后执行此操作 否则,分机中定义的默认值将覆盖您的设置。

升级扩展

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

  1. 下载新版本扩展插件
  2. 替换extensions/ExtensionName目录下所有文件为新版本的文件。 不要删除LocalSettings.php中存在的扩展插件的配置。
  3. 如果扩展需要修改MediaWiki資料庫,你將需要运行update.php 维护脚本。 多数扩展插件会提及是否需要运行这个脚本。 (在执行脚本之前执行数据备份)。 如果你没有使用命令行的权限,你也可以使用网络更新
這手冊包含超過99%的拓展。 如果該拓展有與你不同的標準,請跟隨該標準。

卸载一个扩展

从LocalSettings.php中删除带有扩展名的行以将其卸载:

wfLoadExtension( 'ExtensionName' );
  • 您必须删除与扩展配置有关的所有行。

参见