Extension:InterwikiIntegration
- Not to be confused with Category:Extensions by integration target.
|
InterwikiIntegration Release status: experimental |
|
|---|---|
| Description | This extension currently implements interwiki page existence detection on a wiki farm. |
| Author(s) | Tisanetalk |
| Last version | 1.0.0 |
| MediaWiki | 1.16+ |
| PHP | 5 |
| License | Creative Commons Attribution/Share-Alike License 3.0, GPL |
| Download |
SVN [?]:
|
| 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.
Contents |
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