Extension:GlobalUsage

MediaWiki extensions manual
GlobalUsage
Release status: stable
Implementation Special page , API
Description Allows to view the global usage of images in a wiki farm with shared image repository
Author(s) Bryan Tong Minh (Bryantalk)
Latest version 2.2.0
Compatibility policy Snapshots releases along with MediaWiki. Master is not backward compatible.
MediaWiki 1.28+
Database changes Yes
Tables globalimagelinks
License MIT License
Download
README
  • $wgGlobalUsageSharedRepoWiki
  • $wgGlobalUsageDatabase
  • $wgGlobalUsagePurgeBacklinks
Quarterly downloads 9 (Ranked 130th)
Public wikis using 964 (Ranked 248th)
Translate the GlobalUsage extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

The GlobalUsage extension allows to view the global usage of images in a wiki farm with shared image repository. It adds Special:GlobalUsage as well as a list of pages that include the image on image description pages.

Install

  • Download and move the extracted GlobalUsage folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/GlobalUsage
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'GlobalUsage' );
    
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  • In LocalSettings, set $wgGlobalUsageDatabase to the identifier of the wiki where the GlobalUsage data is located (usually the database name). It should be the wiki's id as used by the load balancer. (i.e. It should be the database name. If using a table prefix, it should be dbname-prefix). Example: $wgGlobalUsageDatabase = 'commonswiki';
    This name must also be registered to MediaWiki's load balancer: Manual:$wgLBFactoryConf . This configuration structure maps database names to database servers. 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 Manual:Sites table 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
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
  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.

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:

Result
<?xml version="1.0"?>
<api>
  <query>
    <pages>
      <page pageid="6428847" ns="6" title="File:Example.jpg">
        <globalusage>
          <gu title="Ашаблон:Ацқьа" 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" />
          <gu title="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" />
          <gu title="አባል:Blockinblox" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Blockinblox" />
          <gu title="አባል_ውይይት: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" />
          <gu title="አባል:Beza" wiki="am.wikipedia.org" url="http://am.wikipedia.org/wiki/%E1%8A%A0%E1%89%A3%E1%88%8D:Beza" />
          <gu title="መደብ:ኪነት" 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" />
          <gu title="መደብ_ውይይት:ተረትና_ምሳሌ" 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" />
          <gu title="ስዕል:መርጡለ_ማርያም_ገዳም_.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" />
          <gu title="User_talk:Rasheduzzaman_Raj" wiki="ang.wikipedia.org" url="http://ang.wikipedia.org/wiki/User_talk:Rasheduzzaman_Raj" />
          <gu title="User:Danceteamcherleaders" wiki="ang.wikipedia.org" url="http://ang.wikipedia.org/wiki/User:Danceteamcherleaders" />
        </globalusage>
      </page>
    </pages>
  </query>
  <query-continue>
    <globalusage gucontinue="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: