Extension:InterwikiIntegration

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

Release status:Extension status experimental

DescriptionTemplate:Extension#description This extension currently implements interwiki page existence detection on a wiki farm.
Author(s)Template:Extension#username Tisanetalk
Latest versionTemplate:Extension#version 1.0.0
MediaWikiTemplate:Extension#mediawiki 1.18+
PHPTemplate:Extension#php 5
LicenseTemplate:Extension#license Creative Commons Attribution/Share-Alike License 3.0, GPL
Download

Translate the InterwikiIntegration extension if it is available at translatewiki.net

Check usage and version matrix.

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]

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]

The configuration settings are:

$wgInterwikiIntegrationPrefix[edit]

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]

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]

$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]

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]

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

See also[edit]