Manual:扩展
扩展允许您定制MediaWiki的外观和工作方式。
虽然许多某些扩展是由MediaWiki的开发者维护,但其餘的是由第三方开发者所编写。 这样会导致一个结果,会出现bug,他们不能保证能够和其他扩展相互兼容。 一些扩展不被维护;并不是所有的扩展都能在所有的MediaWiki版本運作。 使用任何扩展,特别是那些标记着不稳定的扩展,当你使用时会有所风险。 當你使用需要修補核心軟體的扩展時,確認已先備份你的資料庫。 這有助於你避免弄壞你的維基頁面的風險。
扩展的类型
页面内容模型
寻找扩展
浏览扩展插件
您可浏览分类:按分类排列的扩展 以了解已有插件的功能范围。 关于如何安装这些插件或者如何编写自己的插件,参见后续章节。
检查已安装的扩展
只有那些具备访问服务器文件系统的管理员可以安装用于MediaWiki的扩展插件,但是任何人都可以点击Special:Version页面获得当前有哪些扩展插件被用在这个MediaWiki网站上的信息。 例如,点击这里可以了解哪些扩展插件被用在了英文维基百科。
流行扩展
有许多寻找流行扩展的方法。
第一种是查找与MediaWiki捆绑在一起的扩展(一个定期会审查的列表,任何人都可以提供添加新扩展的建议)。
通过ExtensionDistributor 机制从MediaWiki.org下载的扩展会收集一些统计信息。 下载次数最多的前15个扩展列在Special:ExtensionDistributor处,扩展的下载次数显示在其信息框中。 不过需要留意的是,这些数字并不包括通过 Git 或 Composer 下载扩展。
第三种选择是查看WikiApiary 中安装某些扩展的wiki数量。 这个网站的优点是显示的是实际的安装数而不是下载数(即它查询wiki的API),但也(截至2023年)并不是最新的。 这也不包括私有wiki的安装数。
安装扩展插件
- 有关进一步指南,另请参阅Manual:Extensions/Installation and upgrade
在安装完MediaWiki后即可安装扩展插件。 添加一个插件需要下面几个步骤:
- 在您开始之前
- 少数扩展插件需要安装补丁。其中大多数提供了专为unix安装命令而设计的使用说明。 这需要命令行权限(SSH)来运行这些在扩展插件帮助页面上给出的命令。
- 下载您的扩展。
- Extension Distributor可帮你选择和下载最受欢迎的扩展插件。
- 扩展插件通常以模块的程序包形式发布。 它们通常位于
$IP /extensions/
的子目录中。 在维基媒体Git存储库存储的扩展列表位于git:mediawiki/extensions。 一些不使用版本控制的扩展都不推荐使用。 - bundles、composer 或包存储库中也提供了一些扩展。
- 推荐在安装前阅读 README 文件。 通常包含关于配置的重要信息。
- 安装您的扩展。
- 在
LocalSettings.php
文件的结尾添加下列代码: wfLoadExtension( 'ExtensionName' );
- 这一条将强制PHP解释器来读取文件扩展,从而使其到MediaWiki访问。
- 某些扩展可能与维护脚本冲突,例如它們能直接访问$_SERVER(不推荐)。
- 在这种情况下,他们可以被包裹在条件下进行运行,以让维护脚本仍然可以运行。
if ( !$wgCommandLineMode ) { wfLoadExtension ( 'ExtensionName' ); }
- 对于任何需要自定义命名空间的扩展,维护脚本importDump.php 将失败,这些命名空间在上面的条件中被包含,例如扩展:Semantic MediaWiki ,Extension:页面表单 。
- 在
- 确保为扩展设置了所需的权限!
- 虽然此安装过程对于大多数扩展来说已足够,但某些扩展需要不同的安装过程。 检查您的扩展文档以获取详情。
- 如果要在LocalSettings.php中更改配置变量,则必须在包含扩展名的之后执行此操作。 否则,分机中定义的默认值将覆盖您的设置。
升级扩展
当你升级你的MediaWiki时,部分扩展插件也需要升级,而其他部分扩展插件则可能支持向上兼容。 升级某个扩展插件到新版本:
- 下载新版本扩展插件
- 替换
extensions/ExtensionName
目录下所有文件为新版本的文件。 不要删除LocalSettings.php中存在的扩展插件的配置。 - 如果扩展需要修改MediaWiki資料庫,你將需要运行update.php 维护脚本。 多数扩展插件会提及是否需要运行这个脚本。 (在执行脚本之前执行数据备份)。 如果你没有使用命令行的权限,你也可以使用网络更新。
卸载一个扩展
从LocalSettings.php中删除带有扩展名的行以将其卸载:
wfLoadExtension( 'ExtensionName' );
- 您必须删除与扩展配置有关的所有行。
参见
- Category:扩展
- Template:Extension
- Manual:开发扩展
- 手册:翻译扩展 - 有关翻译扩展的信息。
- Special:ExtensionDistributor - 包括在维基媒体版本控制裏下载量最多的15个扩展的列表
- extloc - Where are MediaWiki extensions deployed in Wikimedia production?
- API:SiteInfo extension information