Extension:InterwikiIntegration

From MediaWiki.org
Jump to: navigation, search
Not to be confused with Category:Extensions by integration target.
MediaWiki extensions manual - list
Crystal Clear action run.png
InterwikiIntegration

Release status: experimental

Description This extension currently implements interwiki page existence detection on a wiki farm.
Author(s) Tisanetalk
Latest version 1.0.0
MediaWiki 1.16+
PHP 5
License Creative Commons Attribution/Share-Alike License 3.0, GPL
Download Template:WikimediaDownload/svn

Translate the InterwikiIntegration extension if possible

Check usage and version matrix; code metrics

This extension presently handles interwiki page existence detection among wikis on a wiki farm. It used to also serve as a proof of concept for the interwiki watchlist concept, but this feature has been removed.

Installation[edit | edit source]

Download the extension and install it by adding this line to the LocalSettings.php file on all of your wikis:

require_once( "$IP/extensions/InterwikiIntegration/InterwikiIntegration.php"  );

Set up a shared database by defining $wgSharedDB in the LocalSettings.php file of all of your wikis. You will want to set it to the database name of your primary wiki, e.g.:

$wgSharedDB = 'db_alocal';

Give your wikis access to one another's databases using $wgLocalDatabases, e.g.:

$wgLocalDatabases = array(
    'db_alocal',
    'db_blocal',
    'db_clocal',
);

Set the extension's configuration settings.

Then, go to each of your wikis and, from a bureaucrat account, use Special:PopulateInterwikiIntegrationTable. This will populate the integration_db and integration_namespace tables, which are shared by the wikis, and will also populate the interwiki table.

Rather than listing $wgLocalDatabases separately, you could instead, theoretically, use the following after defining your $wgInterwikiIntegrationPrefix array:

$wgLocalDatabases = array_unique ( array_values ( $wgInterwikiIntegrationPrefix ) );

Configuration settings[edit | edit source]

The configuration settings are:

$wgInterwikiIntegrationPrefix[edit | edit source]

Match interwiki prefixes to databases, e.g., here is how you might set it up if your naming scheme were to prefix all databases with "db":

$wgInterwikiIntegrationPrefix = array(
    'a'      => 'db_alocal',
    'alocal' => 'db_alocal',
    'b'      => 'db_blocal',
    'blocal' => 'db_blocal',
    'c'      => 'db_clocal',
    'clocal' => 'db_clocal'
);

$wgInterwikiIntegrationPWD[edit | edit source]

List the wikis that use pure wiki deletion, e.g.:

$wgInterwikiIntegrationPWD = array(
    'db_alocal'      => true,
    'db_blocal'      => true,
    'db_clocal'      => false
);

Note that Extension:PureWikiDeletion has to installed on the appropriate target wikis if you set these values to true.

$wgInterwikiIntegrationURL[edit | edit source]

$wgInterwikiIntegrationURL is used for clearing the appropriate caches via SquidUpdate->purge. Whether it actually does anything is anyone's guess; I don't have any squids, so I can't test it. Actually, come to think of it, this setting should probably be killed, in favor of reading this url data from the interwiki table instead.

$wgInterwikiIntegrationURL = array(
    'db_alocal'      => 'http://example.com/alocal/index.php?title=',
    'db_blocal'      => 'http://example.com/blocal/index.php?title=',
    'db_clocal'      => 'http://example.com/clocal/index.php?title='
);

Development notes[edit | edit source]

The next steps in development will be:

  • Get Special:WhatLinksHere to work interwiki, and also to implement interwiki cache clearing when a page that another wiki links to is blanked/unblanked/created/deleted/undeleted/etc.
  • Implement interwiki talk page notification
  • Implement interwiki Special:RecentChanges
  • Implement interwiki watchlist
  • Implement interwiki search
  • Implement interwiki shared pages (maybe)

Bugs this will fix[edit | edit source]

  • Bug 3525 — Interwiki watchlists
  • Bug 11 — Interwiki page existence detection
  • Bug 1837 — Interwiki search

See also[edit | edit source]