__FILE__, 'name' => 'Replace Text', 'version' => REPLACE_TEXT_VERSION, 'author' => array( 'Yaron Koren', 'Niklas Laxström' ), 'url' => 'https://www.mediawiki.org/wiki/Extension:Replace_Text', 'descriptionmsg' => 'replacetext-desc', ); $rtgIP = __DIR__ . '/'; $wgMessagesDirs['ReplaceText'] = __DIR__ . '/i18n'; $wgExtensionMessagesFiles['ReplaceText'] = $rtgIP . 'ReplaceText.i18n.php'; $wgExtensionMessagesFiles['ReplaceTextAlias'] = $rtgIP . 'ReplaceText.alias.php'; $wgJobClasses['replaceText'] = 'ReplaceTextJob'; // This extension uses its own permission type, 'replacetext' $wgAvailableRights[] = 'replacetext'; $wgGroupPermissions['sysop']['replacetext'] = true; $wgHooks['AdminLinks'][] = 'rtAddToAdminLinks'; $wgSpecialPages['ReplaceText'] = 'SpecialReplaceText'; $wgSpecialPageGroups['ReplaceText'] = 'wiki'; $wgAutoloadClasses['SpecialReplaceText'] = $rtgIP . 'SpecialReplaceText.php'; $wgAutoloadClasses['ReplaceTextJob'] = $rtgIP . 'ReplaceTextJob.php'; $wgAutoloadClasses['ReplaceTextSearch'] = $rtgIP . 'ReplaceTextSearch.php'; /** * This function should really go into a "ReplaceText_body.php" file. * * Handler for 'AdminLinks' hook in the AdminLinks extension * * @param $admin_links_tree ALTree * @return bool */ function rtAddToAdminLinks( ALTree &$admin_links_tree ) { $general_section = $admin_links_tree->getSection( wfMessage( 'adminlinks_general' )->text() ); $extensions_row = $general_section->getRow( 'extensions' ); if ( is_null( $extensions_row ) ) { $extensions_row = new ALRow( 'extensions' ); $general_section->addRow( $extensions_row ); } $extensions_row->addItem( ALItem::newFromSpecialPage( 'ReplaceText' ) ); return true; }