From 4be62363520d02f9d5bf4929b9abee3521abfb53 Mon Sep 17 00:00:00 2001 From: Chad Horohoe Date: Thu, 11 Apr 2013 09:20:36 -0400 Subject: [PATCH] Remove externaledit/externaldiff preference Change-Id: Ic3791d188688f556753ab5556a4d9733bbf2e85e --- RELEASE-NOTES-1.22 | 2 + includes/AutoLoader.php | 1 - includes/DefaultSettings.php | 8 -- includes/ExternalEdit.php | 132 ----------------------------- includes/ImagePage.php | 21 +---- includes/Preferences.php | 15 +--- includes/actions/EditAction.php | 14 +-- includes/diff/DifferenceEngine.php | 27 ------ languages/messages/MessagesEn.php | 2 - maintenance/language/messages.inc | 2 - 10 files changed, 6 insertions(+), 218 deletions(-) delete mode 100644 includes/ExternalEdit.php diff --git a/RELEASE-NOTES-1.22 b/RELEASE-NOTES-1.22 index c24cd7d201..5bfc519e21 100644 --- a/RELEASE-NOTES-1.22 +++ b/RELEASE-NOTES-1.22 @@ -49,6 +49,8 @@ changes to languages because of Bugzilla reports. use AuthPlugin for external authentication/authorization needs. * The Quickbar feature of the legacy skin model and the last remnants of it throughout the code base have been removed. +* Externaledit/externaldiff preference was removed. Very few users used this + feature, and improper configuration can actually prevent a user from editing == Compatibility == diff --git a/includes/AutoLoader.php b/includes/AutoLoader.php index 33a244bee9..7d6b8327e1 100644 --- a/includes/AutoLoader.php +++ b/includes/AutoLoader.php @@ -90,7 +90,6 @@ $wgAutoloadLocalClasses = array( 'EnhancedChangesList' => 'includes/ChangesList.php', 'ErrorPageError' => 'includes/Exception.php', 'ExplodeIterator' => 'includes/StringUtils.php', - 'ExternalEdit' => 'includes/ExternalEdit.php', 'ExternalStore' => 'includes/externalstore/ExternalStore.php', 'ExternalStoreDB' => 'includes/externalstore/ExternalStoreDB.php', 'ExternalStoreHttp' => 'includes/externalstore/ExternalStoreHttp.php', diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 7b6e9a7d5c..37a15339aa 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -3647,8 +3647,6 @@ $wgDefaultUserOptions = array( 'enotifusertalkpages' => 1, 'enotifwatchlistpages' => 0, 'extendwatchlist' => 0, - 'externaldiff' => 0, - 'externaleditor' => 0, 'fancysig' => 0, 'forceeditsummary' => 0, 'gender' => 'unknown', @@ -4930,12 +4928,6 @@ $wgPreviewOnOpenNamespaces = array( NS_CATEGORY => true ); -/** - * Activate external editor interface for files and pages - * See http://www.mediawiki.org/wiki/Manual:External_editors - */ -$wgUseExternalEditor = true; - /** Go button goes straight to the edit screen if the article doesn't exist. */ $wgGoToEdit = false; diff --git a/includes/ExternalEdit.php b/includes/ExternalEdit.php deleted file mode 100644 index 11e942308c..0000000000 --- a/includes/ExternalEdit.php +++ /dev/null @@ -1,132 +0,0 @@ - - */ - -/** - * Support for external editors to modify both text and files - * in external applications. It works as follows: MediaWiki - * sends a meta-file with the MIME type 'application/x-external-editor' - * to the client. The user has to associate that MIME type with - * a helper application (a reference implementation in Perl - * can be found in extensions/ee), which will launch the editor, - * and save the modified data back to the server. - * - */ -class ExternalEdit extends ContextSource { - - /** - * Array of URLs to link to - * @var Array - */ - private $urls; - - /** - * Constructor - * @param $context IContextSource context to use - * @param $urls array - */ - public function __construct( IContextSource $context, array $urls = array() ) { - $this->setContext( $context ); - $this->urls = $urls; - } - - /** - * Check whether external edit or diff should be used. - * - * @param $context IContextSource context to use - * @param string $type can be either 'edit' or 'diff' - * @return Bool - */ - public static function useExternalEngine( IContextSource $context, $type ) { - global $wgUseExternalEditor; - - if ( !$wgUseExternalEditor ) { - return false; - } - - $pref = $type == 'diff' ? 'externaldiff' : 'externaleditor'; - $request = $context->getRequest(); - - return !$request->getVal( 'internaledit' ) && - ( $context->getUser()->getOption( $pref ) || $request->getVal( 'externaledit' ) ); - } - - /** - * Output the information for the external editor - */ - public function execute() { - global $wgContLang, $wgScript, $wgScriptPath, $wgCanonicalServer; - - $this->getOutput()->disable(); - - $response = $this->getRequest()->response(); - $response->header( 'Content-type: application/x-external-editor; charset=utf-8' ); - $response->header( 'Cache-control: no-cache' ); - - $special = $wgContLang->getNsText( NS_SPECIAL ); - - # $type can be "Edit text", "Edit file" or "Diff text" at the moment - # See the protocol specifications at [[m:Help:External editors/Tech]] for - # details. - if ( count( $this->urls ) ) { - $urls = $this->urls; - $type = "Diff text"; - } elseif ( $this->getRequest()->getVal( 'mode' ) == 'file' ) { - $type = "Edit file"; - $image = wfLocalFile( $this->getTitle() ); - if ( $image ) { - $urls = array( - 'File' => array( - 'Extension' => $image->getExtension(), - 'URL' => $image->getCanonicalURL() - ) - ); - } else { - $urls = array(); - } - } else { - $type = "Edit text"; - # *.wiki file extension is used by some editors for syntax - # highlighting, so we follow that convention - $urls = array( 'File' => array( - 'Extension' => 'wiki', - 'URL' => $this->getTitle()->getCanonicalURL( - array( 'action' => 'edit', 'internaledit' => 'true' ) ) - ) ); - } - - $files = ''; - foreach( $urls as $key => $vars ) { - $files .= "\n[$key]\n"; - foreach( $vars as $varname => $varval ) { - $files .= "$varname=$varval\n"; - } - } - - $url = $this->getTitle()->getFullURL( - $this->getRequest()->appendQueryValue( 'internaledit', 1, true ) ); - - $control = <<addHTML( "
  • " . $this->getContext()->msg( 'upload-disallowed-here' )->escaped() . "
  • \n" ); } - # External editing link - if ( $wgUseExternalEditor ) { - $elink = Linker::linkKnown( - $this->getTitle(), - wfMessage( 'edit-externally' )->escaped(), - array(), - array( - 'action' => 'edit', - 'externaledit' => 'true', - 'mode' => 'file' - ) - ); - $out->addHTML( - '
  • ' . $elink . ' ' . - wfMessage( 'edit-externally-help' )->parse() . - "
  • \n" - ); - } - $out->addHTML( "\n" ); } diff --git a/includes/Preferences.php b/includes/Preferences.php index 8766ad389e..33780a418f 100644 --- a/includes/Preferences.php +++ b/includes/Preferences.php @@ -721,7 +721,7 @@ class Preferences { * @param $defaultPreferences Array */ static function editingPreferences( $user, IContextSource $context, &$defaultPreferences ) { - global $wgUseExternalEditor, $wgAllowUserCssPrefs; + global $wgAllowUserCssPrefs; ## Editing ##################################### $defaultPreferences['cols'] = array( @@ -794,19 +794,6 @@ class Preferences { ); } - if ( $wgUseExternalEditor ) { - $defaultPreferences['externaleditor'] = array( - 'type' => 'toggle', - 'section' => 'editing/advancedediting', - 'label-message' => 'tog-externaleditor', - ); - $defaultPreferences['externaldiff'] = array( - 'type' => 'toggle', - 'section' => 'editing/advancedediting', - 'label-message' => 'tog-externaldiff', - ); - } - $defaultPreferences['forceeditsummary'] = array( 'type' => 'toggle', 'section' => 'editing/advancedediting', diff --git a/includes/actions/EditAction.php b/includes/actions/EditAction.php index dec3d841e0..3dd4c4831c 100644 --- a/includes/actions/EditAction.php +++ b/includes/actions/EditAction.php @@ -43,21 +43,11 @@ class EditAction extends FormlessAction { public function show() { $page = $this->page; - $request = $this->getRequest(); $user = $this->getUser(); - $context = $this->getContext(); if ( wfRunHooks( 'CustomEditor', array( $page, $user ) ) ) { - if ( ExternalEdit::useExternalEngine( $context, 'edit' ) - && $this->getName() == 'edit' && !$request->getVal( 'section' ) - && !$request->getVal( 'oldid' ) ) - { - $extedit = new ExternalEdit( $context ); - $extedit->execute(); - } else { - $editor = new EditPage( $page ); - $editor->edit(); - } + $editor = new EditPage( $page ); + $editor->edit(); } } diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index d03a5bee73..a69862d0c3 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -223,33 +223,6 @@ class DifferenceEngine extends ContextSource { throw new PermissionsError( 'read', $permErrors ); } - # If external diffs are enabled both globally and for the user, - # we'll use the application/x-external-editor interface to call - # an external diff tool like kompare, kdiff3, etc. - if ( ExternalEdit::useExternalEngine( $this->getContext(), 'diff' ) ) { - //TODO: come up with a good solution for non-text content here. - // at least, the content format needs to be passed to the client somehow. - // Currently, action=raw will just fail for non-text content. - - $urls = array( - 'File' => array( 'Extension' => 'wiki', 'URL' => - # This should be mOldPage, but it may not be set, see below. - $this->mNewPage->getCanonicalURL( array( - 'action' => 'raw', 'oldid' => $this->mOldid ) ) - ), - 'File2' => array( 'Extension' => 'wiki', 'URL' => - $this->mNewPage->getCanonicalURL( array( - 'action' => 'raw', 'oldid' => $this->mNewid ) ) - ), - ); - - $externalEditor = new ExternalEdit( $this->getContext(), $urls ); - $externalEditor->execute(); - - wfProfileOut( __METHOD__ ); - return; - } - $rollback = ''; $undoLink = ''; diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 76dba58e70..db071e36df 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -666,8 +666,6 @@ XHTML id names. 'tog-shownumberswatching' => 'Show the number of watching users', 'tog-oldsig' => 'Existing signature:', 'tog-fancysig' => 'Treat signature as wikitext (without an automatic link)', -'tog-externaleditor' => 'Use external editor by default (for experts only, needs special settings on your computer. [//www.mediawiki.org/wiki/Manual:External_editors More information.])', -'tog-externaldiff' => 'Use external diff by default (for experts only, needs special settings on your computer. [//www.mediawiki.org/wiki/Manual:External_editors More information.])', 'tog-showjumplinks' => 'Enable "jump to" accessibility links', 'tog-uselivepreview' => 'Use live preview (requires JavaScript) (experimental)', 'tog-forceeditsummary' => 'Prompt me when entering a blank edit summary', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 1a0ff8abeb..1b6ba3c090 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -56,8 +56,6 @@ $wgMessageStructure = array( 'tog-shownumberswatching', 'tog-oldsig', 'tog-fancysig', - 'tog-externaleditor', - 'tog-externaldiff', 'tog-showjumplinks', 'tog-uselivepreview', 'tog-forceeditsummary', -- 2.20.1