Jump to content

Extension:跨wiki

本頁使用了標題或全文手工轉換
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 Extension:Interwiki and the translation is 100% complete.
MediaWiki扩展手册
Interwiki
发行状态: 稳定版
实现 特殊页面
描述 添加一個特殊頁面以查看和操作interwiki的数据表
作者 Stephanie Amanda Stevens, SPQRobin
最新版本 4.0
MediaWiki 1.36—1.43
数据库更改
  • $wgInterwikiCentralDB
  • $InterwikiCentralInterlanguageDB
  • $wgInterwikiViewOnly
interwiki
许可证 GNU General Public License 2.0 or later
下載
示例 Special: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数据

配置

Further information: Manual:Interwiki

跨语言链接

要使用此擴展功能建立跨語言的連結,請確保$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

還有兩個標示為「轉發」和「嵌入」的复选框。 請參閱手册:跨维基表 ,以了解轉發(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