Jump to content

Manual:扩展

本頁使用了標題或全文手工轉換
From mediawiki.org
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This page is a translated version of the page Manual:Extensions and the translation is 100% complete.

扩展可以讓您訂制MediaWiki的外观和工作方式。

  • 系统管理员可在他们管理的MediaWiki安装副本上安装(或移除)扩展。
  • 开发人员可以编写新扩展或者為現有的{zh-hans:扩展; zh-hant:擴充功能;}-貢獻一份心力。
虽然某些扩展是由MediaWiki的开发者维护,但其餘的擴充功能是由第三方開發,可能處於無人維護的狀態. 因此,許多擴充功能可能含有bug,某些情況下甚至包含安全漏洞。 並非所有擴充功能皆與每個版本的MediaWiki相容,且當它們同時使用時,其運作可能無法穩定可靠。 使用擴充功能需自行承擔風險,特別是那些標記為不安全的擴充功能。 若擴充功能需要對核心軟體進行修補,請務必事先備份資料庫,以盡量降低破壞你的維基的風險。

选择扩展

同捆的扩展

若干擴充功能已預設與MediaWiki同捆

這些擴充功能通常應具備高度實用性、高效能運作、穩定可靠、程式碼結構良好,且無已知重大安全漏洞。 它們還應與 MediaWiki 的最新版本相容,並彼此相容(即一個擴充功能不應阻礙另一個擴充功能的運作)。 同捆式的擴充功能可能依賴於一個或多個其他擴充功能,只要這些擴充功能同樣屬於同綁式即可。

網站管理員在安裝或升級 MediaWiki 時會自動獲得這些權限。 升級 MediaWiki 時,所有擴充功能的升級也將自動套用。 網站管理員可視情況選擇卸載其中任何一個擴充功能。

關於哪些擴充功能應納入此群組,有公開、正進行的討論。 您可以建議其他要同捆的擴充功能 。 擴充功能將在開發人員達成共識後進行打包。

若擴充功能被併入MediaWiki的核心 、被替代方案取代,或在極罕見情況下發現無法解決的重大安全漏洞,則該擴充功能可能從套件中移除。

浏览扩展

請浏览Category:所有扩展 Category:按分类排列的扩展 以查看全部可用的扩展。

检查已安装的扩展

可透過存取Special:Version頁面去檢查在MediaWiki的實例上有哪些擴充功能處於啟用狀態,並向下滾動至標題「已安裝的擴充功能」處(錨點 #mw-version-ext)。 例如,這些擴充功能已安裝於此維基,而這些擴充功能則在英語維基百科中處於啟用狀態。

受歡迎的扩展

还有一种选择是查看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 将失败,这些命名空间在上面的条件中被包含,例如Extension:Semantic MediaWiki(语义 MediaWiki) Extension:Page Forms(页面表单)
确保为扩展设置了所需的权限!
虽然此安装过程对于大多数扩展来说已足够,但某些扩展需要不同的安装过程。 检查您的扩展文档以获取详情。
如果要在LocalSettings.php中更改配置变量,通常都必须在包含扩展之后再去做。 否则,扩展中定义的默认值将覆盖您的设置。

升级扩展

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

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

卸载扩展

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

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

開發扩展

MediaWiki 核心提供了幾種方式讓扩展改變wiki的行為和外觀。 這些扩展點 能讓扩展彈性地增加特性和功能,例如顯示特殊頁面或定義API模組。 若要跨出第一步,請參閱開發扩展指南 。 在撰寫新的扩展之前,請考慮為現有的扩展 貢獻一份心力、或是協助未維護的扩展

使用者亦可透過Phabricator提出一般性請求,期待您的好點子能被開發人員採納。 请参阅https://phabricator.wikimedia.org/tag/mediawiki-extension-requests/

参阅