Extension:InterwikiIntegration


 * Not to be confused with Category:Extensions by integration target.

This extension presently handles interwiki page existence detection among wikis on a wiki farm. Later, it will allow a user on a wiki farm to have a single watchlist, combining watchlisted items from all wikis he is a member of. There will be checkbox in the Watchlist page of Special:Preferences allowing the user to have an integrated watchlist including wikis of his choice. These checkboxes will be tied to global preferences setting; once checked on one wiki, they will be checked on all of them. It was also implement multi-wiki search. And it will integrate with Extension:PureWikiDeletion.

The InterwikiIntegration extension will be compatible with wiki farms that use Extension:CentralAuth and with those that use shared databases. It will also provide much of the functionality of CentralAuth in setting up global accounts, but will be easier to configure and operate. Indeed, it uses much the same global user table structure as CentralAuth.

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

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.:

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

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:

Configuration settings
The configuration settings are:

$wgInterwikiIntegrationPrefix
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":

$wgInterwikiIntegrationPWD
List the wikis that use pure wiki deletion, e.g.: Note that Extension:PureWikiDeletion has to installed on the appropriate target wikis if you set these values to true.

$wgInterwikiIntegrationURL
$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.

Development notes
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

 * Bug 3525 &mdash; Interwiki watchlists
 * Bug 11 &mdash; Interwiki page existence detection
 * Bug 1837 &mdash; Interwiki search