Jump to content
MediaWiki

扩展:全域用途

From mediawiki.org
This page is a translated version of the page Extension:GlobalUsage and the translation is 18% complete.
MediaWiki扩展手册
GlobalUsage
发行状态: 稳定版
实现 特殊页面 , API
描述 允许浏览图像在使用共享图像存储库的维基农场的全域用途
作者 Bryan Tong Minh (Bryan 留言 )
最新版本 2.2.0
兼容性政策 快照跟随MediaWiki发布。 master分支不向后兼容。
MediaWiki 1.28+
数据库更改
虚拟域 virtual-globalusage
  • $wgGlobalUsageSharedRepoWiki
  • $wgGlobalUsagePurgeBacklinks
许可证 MIT License
下載
README
前往translatewiki.net翻譯GlobalUsage扩展
問題 开启的任务 · 报告错误

扩展程序GlobalUsage允许浏览图像在使用共享图像存储库的维基农场的全域用途。 扩展程序添加了Special:GlobalUsage以及包含图像描述页面的图像的页面列表。

安装

  • 下载文件,并解压GlobalUsage文件夹到extensions/目录中。
    开发者和代码贡献人员应改从Git安装此扩展,输入:
    cdextensions/
    gitclonehttps://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage
    
  • 請新增下列代码到您的LocalSettings.php 文件的底部:
    wfLoadExtension( 'GlobalUsage' );
    
  • 請运行更新脚本 ,它将自动创建此扩展所必须的数据库表。
  • 在本地设置中,将$wgGlobalUsageDatabase设置为全域用途数据所在的维基的辨识符(一般是数据库的名字)。 它被加载平衡器使用,因此应该是维基的辨识符。 (也就是说它应该是数据库的名字。如果使用表格前缀,它应该是dbname-prefix)。 示例: $wgGlobalUsageDatabase = 'commonswiki';
    此名字必须也被注册到MediaWiki的加载平衡器:Manual:$wgLBFactoryConf 配置结构标记数据库名字到数据库服务器。 Note, you must register all databases used in your wikifarm in this structure, even if they are all on the same database server, for this extension to work.
  • You must use either the $wgConf site configuration system or the db 手册:sites表 for GlobalUsage to be able to link to your other wikis. You don't neccesarily have to use it for all your wiki configuration, but it is important to use it for $wgServer and $wgArticlePath.
  • Run refreshGlobalimagelinks.php on all wikis in your farm. This will take a long time, but only needs to be done once when installing the extension: php extensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php --pages=existing,nonexisting
  • Yes 完成 – 請导航至您的wiki上的Special:Version,以验证此扩展已成功安装。
  1. Make sure that $wgGlobalUsageDatabase and $wgLBFactoryConf were set properly.
  2. Use maintenance script importSites.php to build an XML format site list file. (Instruction can be found here: sitelist.txt, sample file can be found here: sitelist-1.0.xsd.)
  3. Use $wgSharedDB = 'commonswiki'; and $wgSharedTables[] = 'sites'; to share sites table across all wikis.
  4. Clean all cache and force refresh like by refreshGlobalimagelinks.php.

Configuration for GlobalUsage (MediaWiki 1.43+)

MediaWiki版本:
≥ 1.43

In newer versions of GlobalUsage (REL1_45 and newer), $wgGlobalUsageDatabase is no longer used. The extension now uses MediaWiki's virtual domain system. The correct configuration variable is $wgVirtualDomainsMapping.

On each content wiki (wikis that use files from the shared repo)

// Must be set BEFORE wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';
wfLoadExtension( 'GlobalUsage' );

Replace my_media_wiki_db with the $wgDBname of your shared media/file repository wiki.

On the shared media wiki (the wiki that hosts the files)

// Must be set BEFORE wfLoadExtension
$wgVirtualDomainsMapping['virtual-globalusage'] = [ 'db' => 'my_media_wiki_db' ];
$wgGlobalUsageSharedRepoWiki = 'my_media_wiki_db';
wfLoadExtension( 'GlobalUsage' );
// Required for WikiMap to resolve wiki IDs to display names and URLs.
// Without this, file pages will show raw database names instead of wiki names, and links to pages on other wikis will not work.
$wgLocalDatabases = [ 'my_wiki_1_db', 'my_wiki_2_db', 'my_media_wiki_db' ];
$wgConf->wikis = [ 'my_wiki_1_db', 'my_wiki_2_db', 'my_media_wiki_db' ];
$wgConf->suffixes = [ 'mysuffix' ]; // A common suffix shared by your DB names, or any string
$wgConf->siteParamsCallback = static function ( $conf, $wiki ) {
 return [
 'suffix' => 'mysuffix',
 'lang' => 'en',
 'params' => [],
 'tags' => [],
 ];
};
$wgConf->settings = [
 'wgServer' => [
 'my_wiki_1_db' => 'https://wiki1.example.org',
 'my_wiki_2_db' => 'https://wiki2.example.org',
 'my_media_wiki_db' => 'https://media.example.org',
 ],
 'wgArticlePath' => [
 'default' => '/wiki/1ドル',
 ],
 'wgSitename' => [
 'my_wiki_1_db' => 'My Wiki',
 'my_wiki_2_db' => 'My Wiki (DE)',
 'my_media_wiki_db' => 'My Media Wiki',
 ],
];

Cross-database access

The DB user for each content wiki must have following privileges on the media wiki's database: SELECT, INSERT, UPDATE, DELETE If your wikis use separate database users, grant access as a MySQL/MariaDB root user:

GRANTSELECT,INSERT,UPDATE,DELETEONmy_media_wiki_db.*TO'wiki1_user'@'localhost';
GRANTSELECT,INSERT,UPDATE,DELETEONmy_media_wiki_db.*TO'wiki2_user'@'localhost';
FLUSHPRIVILEGES;

Running update.php

After configuring $wgVirtualDomainsMapping, run update.php on each wiki.

GlobalUsage uses addExtensionUpdateOnVirtualDomain, which creates the globalimagelinks table in the correct database (the media wiki's DB).

If globalimagelinks was accidentally created in the wrong database (e.g. before $wgVirtualDomainsMapping was set), drop it and re-run update.php:

DROPTABLEglobalimagelinks;

Backfilling with refreshGlobalimagelinks.php

Run the refresh script from each content wiki only — not from the media wiki.

The script uses the executing wiki's $wgDBname to stamp the gil_wiki field, and writes to the media wiki's database via the virtual domain mapping.

phpextensions/GlobalUsage/maintenance/refreshGlobalimagelinks.php

Do NOT run on the repository/commons wiki. Running this script from the media wiki itself will result in all rows being stamped with the media wiki's own DB name, and no cross-wiki usage will appear.

Notes

  • $wgGlobalUsageDatabase is silently ignored in REL1_45 and newer versions. If you are upgrading from an older version, replace it with $wgVirtualDomainsMapping as shown above.
  • $wgVirtualDomainsMapping must be set before wfLoadExtension( 'GlobalUsage' ).
  • $wgConf settings on the media wiki are required for links to work. Without them, file pages display raw database names (e.g. mywiki_db) with no hyperlink.
  • The virtual domain name used by this extension is virtual-globalusage (hardcoded in extension.json).

API

Extension:GlobalUsage includes an API extension that allows bots and other programs to query the global usage of a file. For example, this query on Wikimedia Commons returns global uses of File:Example.jpg:

结果
<?xml version="1.0"?>
<api>
<query>
<pages>
<pagepageid="6428847"ns="6"title="File:Example.jpg">
<globalusage>
<gutitle="Ашаблон:Ацқьа"wiki="ab.wikipedia.org"url="http://ab.wikipedia.org/wiki/%D0%90%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%90%D1%86%D2%9B%D1%8C%D0%B0"/>
<gutitle="Wikipedia_ውይይት:Can&#039;t_see_the_font?"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/Wikipedia_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:Can%27t_see_the_font%3F"/>
<gutitle="አባል:Blockinblox"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Blockinblox"/>
<gutitle="አባል_ውይይት:Hana.oww"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:Hana.oww"/>
<gutitle="አባል:Beza"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Beza"/>
<gutitle="መደብ:ኪነት"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%88%98%E1%8B%B0%E1%89%A5:%E1%8A%AA%E1%8A%90%E1%89%B5"/>
<gutitle="መደብ_ውይይት:ተረትና_ምሳሌ"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%88%98%E1%8B%B0%E1%89%A5_%E1%8B%8D%E1%8B%AD%E1%8B%AD%E1%89%B5:%E1%89%B0%E1%88%A8%E1%89%B5%E1%8A%93_%E1%88%9D%E1%88%B3%E1%88%8C"/>
<gutitle="ስዕል:መርጡለ_ማርያም_ገዳም_.jpg"wiki="am.wikipedia.org"url="http://am.wikipedia.org/wiki/%E1%88%B5%E1%8B%95%E1%88%8D:%E1%88%98%E1%88%AD%E1%8C%A1%E1%88%88_%E1%88%9B%E1%88%AD%E1%8B%AB%E1%88%9D_%E1%8C%88%E1%8B%B3%E1%88%9D_.jpg"/>
<gutitle="User_talk:Rasheduzzaman_Raj"wiki="ang.wikipedia.org"url="http://ang.wikipedia.org/wiki/User_talk:Rasheduzzaman_Raj"/>
<gutitle="User:Danceteamcherleaders"wiki="ang.wikipedia.org"url="http://ang.wikipedia.org/wiki/User:Danceteamcherleaders"/>
</globalusage>
</page>
</pages>
</query>
<query-continue>
<globalusagegucontinue="Example.jpg|arwiki|77967"/>
</query-continue>
</api>

By default, this returns only 10 results.

The next 10 results can be retrieved using the gucontinue= parameter included in the result above:

The number of results returned is set with the gulimit parameter. The guprop parameter sets which properties to retrieve. The gufilterlocal parameter, when set to 1, will exclude uses on the same wiki as the file (e.g., on Commons). The following query retrieves all properties and up to 100 results, excluding local uses:

此扩展用于一个或多个维基媒体项目。 这可能意味着扩展足够稳定、运作足够良好,可以用在这样的高流量的网站上。 请在维基媒体的CommonSettings.phpInitialiseSettings.php配置文件中查找此扩展的名称以查看哪些网站安装了该扩展。 特定wiki上的已安装的扩展的完整列表位于Special:Version页面。
此扩展在以下wiki农场/托管网站和/或软件包中提供:

AltStyle によって変換されたページ (->オリジナル) /