diff options
Diffstat (limited to 'extensions/Interwiki/Interwiki.php')
-rw-r--r-- | extensions/Interwiki/Interwiki.php | 136 |
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+' ); } |