summaryrefslogtreecommitdiff
path: root/extensions/Interwiki/Interwiki.php
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/Interwiki/Interwiki.php')
-rw-r--r--extensions/Interwiki/Interwiki.php136
1 files changed, 12 insertions, 124 deletions
diff --git a/extensions/Interwiki/Interwiki.php b/extensions/Interwiki/Interwiki.php
index 2c5d76c7..73341819 100644
--- a/extensions/Interwiki/Interwiki.php
+++ b/extensions/Interwiki/Interwiki.php
@@ -1,127 +1,15 @@
<?php
-/**
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * @file
- * @ingroup Extensions
- * @version 3.0
- * @author Stephanie Amanda Stevens <phroziac@gmail.com>
- * @author Robin Pepermans (SPQRobin) <robinp.1273@gmail.com>
- * @author Jack Phoenix <jack@shoutwiki.com>
- * @author Calimonius the Estrange <isarra@shoutwiki.com>
- * @copyright Copyright © 2005-2007 Stephanie Amanda Stevens
- * @copyright Copyright © 2007-2011 Robin Pepermans (SPQRobin)
- * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
- * @link http://www.mediawiki.org/wiki/Extension:SpecialInterwiki Documentation
- * Formatting improvements Stephen Kennedy, 2006.
- */
-if ( !defined( 'MEDIAWIKI' ) ) {
- die( "This is not a valid entry point.\n" );
-}
-
-// Set this value to true in LocalSettings.php if you will not use this
-// extension to actually change any interwiki table entries. It will suppress
-// the addition of a log for interwiki link changes.
-$wgInterwikiViewOnly = false;
-
-// Name of a database where global interwikis will be stored.
-$wgInterwikiCentralDB = null;
-
-// Extension credits for Special:Version
-$wgExtensionCredits['specialpage'][] = array(
- 'path' => __FILE__,
- 'name' => 'Interwiki',
- 'author' => array(
- 'Stephanie Amanda Stevens',
- 'Alexandre Emsenhuber',
- 'Robin Pepermans',
- 'Siebrand Mazeland',
- 'Platonides',
- 'Raimond Spekking',
- 'Sam Reed',
- 'Jack Phoenix',
- 'Calimonius the Estrange',
- '...'
- ),
- 'version' => '3.0 20140719',
- 'url' => 'https://www.mediawiki.org/wiki/Extension:Interwiki',
- 'descriptionmsg' => 'interwiki-desc',
-);
-
-$wgExtensionFunctions[] = 'setupInterwikiExtension';
-
-$wgResourceModules['ext.interwiki.specialpage'] = array(
- 'styles' => 'Interwiki.css',
- 'localBasePath' => dirname( __FILE__ ),
- 'remoteExtPath' => 'Interwiki',
- 'dependencies' => array(
- 'jquery.makeCollapsible',
- ),
-);
-
-// Set up the new special page
-$dir = dirname( __FILE__ ) . '/';
-$wgMessagesDirs['Interwiki'] = __DIR__ . '/i18n';
-$wgExtensionMessagesFiles['Interwiki'] = $dir . 'Interwiki.i18n.php';
-$wgExtensionMessagesFiles['InterwikiAlias'] = $dir . 'Interwiki.alias.php';
-$wgAutoloadClasses['SpecialInterwiki'] = $dir . 'Interwiki_body.php';
-$wgAutoloadClasses['InterwikiLogFormatter'] = $dir . 'Interwiki_body.php';
-$wgSpecialPages['Interwiki'] = 'SpecialInterwiki';
-$wgSpecialPageGroups['Interwiki'] = 'wiki';
-
-$wgHooks['InterwikiLoadPrefix'][] = 'wfGlobalInterwikis';
-
-
-function setupInterwikiExtension() {
- global $wgInterwikiViewOnly;
-
- if ( $wgInterwikiViewOnly === false ) {
- global $wgAvailableRights, $wgLogTypes, $wgLogActionsHandlers;
-
- // New user right, required to modify the interwiki table through Special:Interwiki
- $wgAvailableRights[] = 'interwiki';
-
- // Set up the new log type - interwiki actions are logged to this new log
- $wgLogTypes[] = 'interwiki';
- // interwiki, iw_add, iw_delete, iw_edit
- $wgLogActionsHandlers['interwiki/*'] = 'InterwikiLogFormatter';
- }
-
- return true;
-}
-
-function wfGlobalInterwikis( $prefix, &$iwData ) {
- global $wgInterwikiCentralDB;
- // docs/hooks.txt says: Return true without providing an interwiki to continue interwiki search.
- if ( $wgInterwikiCentralDB === null || $wgInterwikiCentralDB === wfWikiId() ) {
- // No global set or this is global, nothing to add
- return true;
- }
- if ( !Language::fetchLanguageName( $prefix ) ) {
- // Check if prefix exists locally and skip
- foreach ( Interwiki::getAllPrefixes( null ) as $id => $localPrefixInfo ) {
- if ( $prefix === $localPrefixInfo['iw_prefix'] ) {
- return true;
- }
- }
- $dbr = wfGetDB( DB_SLAVE, array(), $wgInterwikiCentralDB );
- $res = $dbr->selectRow(
- 'interwiki',
- '*',
- array( 'iw_prefix' => $prefix ),
- __METHOD__
- );
- if ( !$res ) {
- return true;
- }
- // Excplicitly make this an array since it's expected to be one
- $iwData = (array)$res;
- // At this point, we can safely return false because we know that we have something
- return false;
- }
- return true;
+if ( function_exists( 'wfLoadExtension' ) ) {
+ wfLoadExtension( 'Interwiki' );
+ // Keep i18n globals so mergeMessageFileList.php doesn't break
+ $wgMessagesDirs['Interwiki'] = __DIR__ . '/i18n';
+ $wgExtensionMessagesFiles['InterwikiAlias'] = __DIR__ . '/Interwiki.alias.php';
+ /* wfWarn(
+ 'Deprecated PHP entry point used for Interwiki extension. Please use wfLoadExtension instead, ' .
+ 'see https://www.mediawiki.org/wiki/Extension_registration for more details.'
+ ); */
+ return;
+} else {
+ die( 'This version of the Interwiki extension requires MediaWiki 1.25+' );
}