Jump to content

Extension:跨wiki

本頁使用了標題或全文手工轉換
From mediawiki.org
This page is a translated version of the page Extension:Interwiki and the translation is 100% complete.
MediaWiki扩展手册
Interwiki
发行状态: 稳定版
实现 特殊页面
描述 添加一個特殊頁面以查看和操作interwiki的数据表
作者 Stephanie Amanda Stevens, SPQRobin
最新版本 4.0
MediaWiki 1.36—1.43
数据库更改
许可协议 GNU通用公眾授權條款2.0或更新版本
下載
示例 Special:Interwiki
  • $wgInterwikiCentralDB
  • $InterwikiCentralInterlanguageDB
  • $wgInterwikiViewOnly
interwiki
前往translatewiki.net翻譯Interwiki扩展
問題 开启的任务 · 报告错误

Interwiki 扩展将Special:Interwiki页面添加到MediaWiki 、用以查看和编辑interwiki 数据表,還有添加一個以它所做出來的任何操作的日誌。

此扩展與$wgInterwikiCache 变量配合使用。 使用它對interwiki数据表所做的更改可能會影響嵌入 跨維基連結 的行为。

Special:Interwiki的列表与 API api.php?action=query&meta =siteinfo&siprop=interwikimap 相同,只是iw_api 字段不可用。

安裝

此扩展随附于MediaWiki 1.21及更新版本,因此您無需下載它。 但其余的配置的指示仍须依循執行。
此扩展已合并至MediaWiki 1.44 版的核心。 此版本及以後版本的MediaWiki無須安裝。
  • 下载文件,并解压Interwiki文件夹到extensions/目录中。
    开发者和代码贡献人员应改从Git安装此扩展,输入:
    cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Interwiki
    
  • 請新增下列代码到您的LocalSettings.php 文件的底部:
    wfLoadExtension( 'Interwiki' );
    // 授予某個群組(例如「系統管理员」群組)权限以编辑跨维基数据
    $wgGroupPermissions['sysop']['interwiki'] = true;
    
  • Yes 完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。
  • MediaWiki 自带的配置不会授予任何用户组权限。 因此,您需要自己添加配置,否则没有人能够编辑跨维基数据。
  • 要启用来自其他站点的嵌入,您需要启用 $wgEnableScaryTranscluding
  • 要禁用通过 Special:Interwiki 接口添加前缀,请将 $wgInterwikiViewOnly 设置为 true
这个扩展在特殊页面列表中的条目不是扩展的名称。 列表中的条目由 SpecialInterwiki.i18n.php 中每个语言环境定义的 interwiki 消息项定义。 它的值为查看和编辑跨wiki数据

配置

跨语言链接

要使用此擴展功能建立跨語言的連結,請確保$wgInterwikiMagic 設定為true$wgHideInterlanguageLinks 設定為false(它們預設為此設定,通常是無需去更改)。 $wgInterwikiViewOnly也需要設定為false(這是預設值)。 然後以能夠編輯跨維基連結的用戶身份前往 Special:Interwiki。 這由interwiki的權限控制,默認情況下,不會有任何用戶組擁有此權限,因此需要將其添加到用戶組中,例如:

$wgGroupPermissions['sysop']['interwiki'] = true;

您一旦在Special:Interwiki了,可以二者擇一,點擊表格頂部的添加跨wiki或语言前缀鏈接、或编辑、或是點擊現有跨維基前綴表格行中的Delete鏈接。

選擇添加跨維基或編輯跨維基的前綴將帶您到一個獨立的頁面,該頁面包含一個需要填寫多個欄位的表單。 主要的欄位有「name」,這是連結所使用的前綴;以及「URL」,您可以在其中輸入完整的URL樣式。 例如,設定name=foowikiURL=http://fr.foowiki.tld/wiki/$1將使[[foowiki:Blah]]指向http://fr.foowiki.tld/wiki/Blah

還有兩個標示為「轉發」和「嵌入」的复选框。 請參閱Manual:Interwiki table ,以了解轉發(iw_local)和嵌入(iw_trans)位元的完整說明。

簡而言之:

  • 通常,在同一群組中會啟用所有語言和專案之間的轉發功能('local'是local=true),因為這樣可以將任何一種語言的連結作為通往其他語言的通道。 例如,英語維基百科對全部的別種語言維基百科以及其他的共享資源、維基新聞、或維基導遊等项目都設置了'local'位元為true。 某個用戶在維基百科以外的維基上,在此處的跨維基前綴wikipedia:就是指向en.wikipedia.org,他就可以藉此創建一個如同wikipedia:fr:Encyclopédie的鏈接。 此鏈接一開始是前往英語維基百科的“fr:Encyclopédie”。 而伺服器en.wikipedia會立即將fr:識別為一個「本地(local)」的跨維基連結,因此會回覆一個到法語維基百科的重定向,此處的fr.wikipedia.org/wiki/Encyclopédie會呈現示出所要求的法語維基百科頁面[[Encyclopédie]],就完成了。
  • 啟用轉發功能的情況很少見,因為它允許在一個維基上的條目使用其他維基上的模板。 這被稱為「未爆彈轉發」,因為如果另一個維基在預期之外更改了模板,就會造成問題。 一些維基農場使用此功能創建一個「中央維基」,其中包含各種模板,這些模板可給那些同在一農場的其他維基使用。 如果您不需要此功能,請不要啟用它。

全域跨wiki

自第3版以來,跨维基功能可讓你定義某個全域/中央資料庫,並從該資料庫以及本地数据表中提取已定義好的跨维基。 這本質上是一個数据表合併的功能,帶有可將中央資料庫的定義覆蓋掉的本地跨維基定義。 語言的連結不會從中央数据表中提取;由於中央数据表可能為多個專案提供服務(每個專案都有自己的語言),因此這些連結被設定為僅限本地使用。

中央数据表是中央維基的跨維基数据表。 這意味著就中央維基而言,它基本上只是個普通的非全域設置。 因此,中央(全域)表格沒有任何特殊權限,儘管您可能希望在指派此維基上的“跨維基”編輯的權限上更加吹毛求疵。

  • 這是通過考察當前可能的用例(ShoutWiki的中心、偽維基的中央維基和元維基)得出的結論,這些用例中,中央維基本身並不會增加任何額外功能。
  • 這可能在未來會發生變化,但任何更智能的功能都將需要更新架構。
  • 這可能無法與資料表前綴一起使用,因為資料表的存取方式不同。

要建造一個中央跨維基資料表,只需提供您想要使用的維基資料庫的名稱即可:

// 啟用從中央資料庫提取全域跨維基的功能
$wgInterwikiCentralDB = 'mw_central';

將 ''mw_central'' 改為資料庫名稱。

對於使用資料表前綴的使用者,這裡有一個「pool_example_wiki」資料表的替代解決方案。

$wgSharedDB = 'example_wiki'; # 存放主要跨維基資料表的wiki資料庫的$wgDBname
$wgSharedPrefix = 'pool_'; # 資料庫的$wgDBprefix。如果未指定,則預設為當前wiki的前綴。
$wgSharedTables = ['interwiki'];


协议相对 URL

您可以使用 相對協議URL(PRURL),以便通過 HTTP 或 HTTPS 存取您的維基的用戶可以使用相同的協議訪問跨維基連結。 要使用 PRURL,首先確保目標伺服器支援HTTPS;如果支援,則只需從連結資料表中的URL中刪除https:部份即可。 例如:變更

https://en.wikipedia.org/wiki/$1

為:

//en.wikipedia.org/wiki/$1