From e7b1a9e8e3b76daa1e2735864ce9800a98307e88 Mon Sep 17 00:00:00 2001 From: Erik Moeller Date: Tue, 12 Apr 2005 03:36:20 +0000 Subject: [PATCH] 1) add new preference: use external diffs (uses same framework as external editors) 2) support for external diffs 3) shuffle some user preferences around --- includes/DifferenceEngine.php | 30 +++++++++++++++++++++++++++++- includes/ExternalEdit.php | 18 +++++++++++------- includes/SpecialPreferences.php | 8 +++++++- languages/Language.php | 11 +++++++---- 4 files changed, 54 insertions(+), 13 deletions(-) diff --git a/includes/DifferenceEngine.php b/includes/DifferenceEngine.php index 66edfa9fd6..c871eb949f 100644 --- a/includes/DifferenceEngine.php +++ b/includes/DifferenceEngine.php @@ -64,9 +64,37 @@ class DifferenceEngine { } function showDiffPage() { - global $wgUser, $wgTitle, $wgOut, $wgContLang, $wgOnlySysopsCanPatrol, $wgUseRCPatrol; + global $wgUser, $wgTitle, $wgOut, $wgContLang, $wgOnlySysopsCanPatrol, + $wgUseExternalEditor, $wgUseRCPatrol; $fname = 'DifferenceEngine::showDiffPage'; wfProfileIn( $fname ); + + # 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($wgUseExternalEditor) { + global $wgInputEncoding,$wgServer,$wgScript; + $wgOut->disable(); + header ( "Content-type: application/x-external-editor; charset=".$wgInputEncoding ); + $url1=$wgTitle->getFullURL("action=raw&oldid=".$this->mOldid); + $url2=$wgTitle->getFullURL("action=raw&oldid=".$this->mNewid); + $control=<<mTitle->getText(); $pos=strrpos($name,".")+1; header ( "Content-type: application/x-external-editor; charset=".$this->mCharset ); - if(!isset($this->mMode)) { + + # $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(!isset($this->mMode)) { $type="Edit text"; $url=$this->mTitle->getFullURL("action=edit&internaledit=true"); # *.wiki file extension is used by some editors for syntax @@ -44,12 +48,11 @@ class ExternalEdit { $extension="wiki"; } elseif($this->mMode=="file") { $type="Edit file"; - $url = Image::newFromTitle( $this->mTitle ); - $url = $wgServer . $url->url; # php sucks - + $image = Image::newFromTitle( $this->mTitle ); + $url = $wgServer . $image->getURL(); $extension=substr($name, $pos); } - $control=" + $control = <<$tbr: mRows}\" size='6' /> " . + $this->getToggle( "editsection" ) . + $this->getToggle( "editsectiononrightclick" ) . + $this->getToggle( "editondblclick" ) . $this->getToggle( "editwidth" ) . $this->getToggle( "showtoolbar" ) . $this->getToggle( "previewonfirst" ) . @@ -675,6 +678,7 @@ class PreferencesForm { $this->getToggle( "watchdefault" ) . $this->getToggle( "minordefault" ) . $this->getToggle( "externaleditor" ) . + $this->getToggle( "externaldiff" ) . " "); @@ -684,7 +688,9 @@ class PreferencesForm {
".wfMsg('prefs-rc')."
" . $this->getToggle( "hideminor" ) . $shownumberswatching . - $this->getToggle( "usenewrc" ) . $this->getToggle('showupdated', wfMsg('updatedmarker')) . + $this->getToggle( "usenewrc" ) . + $this->getToggle( "rcusemodstyle" ) . + $this->getToggle('showupdated', wfMsg('updatedmarker')) . "
diff --git a/languages/Language.php b/languages/Language.php index e80981c4f2..341e479cce 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -85,8 +85,9 @@ if(isset($wgExtraNamespaces)) { 'shownumberswatching' => 1, 'rcusemodstyle' => 1, 'showupdated' => 1, - 'fancysig' => 0, - 'externaleditor' => 0, + 'fancysig' => 0, + 'externaleditor' => 0, + 'externaldiff' => 0, ); /* private */ $wgQuickbarSettingsEn = array( @@ -161,7 +162,8 @@ define( 'MW_DATE_USER_FORMAT', true ); 'rcusemodstyle', 'showupdated', 'fancysig', - 'externaleditor' + 'externaleditor', + 'externaldiff', ); /* private */ $wgBookstoreListEn = array( @@ -269,7 +271,7 @@ global $wgRightsText; 'tog-hideminor' => 'Hide minor edits in recent changes', 'tog-usenewrc' => 'Enhanced recent changes (not for all browsers)', 'tog-numberheadings' => 'Auto-number headings', -'tog-showtoolbar' => 'Show edit toolbar', +'tog-showtoolbar' => 'Show edit toolbar (JavaScript)', 'tog-editondblclick' => 'Edit pages on double click (JavaScript)', 'tog-editsection' => 'Enable section editing via [edit] links', 'tog-editsectiononrightclick' => 'Enable section editing by right clicking
on section titles (JavaScript)', @@ -290,6 +292,7 @@ global $wgRightsText; 'tog-showupdated' => 'Show update marker ', 'tog-fancysig' => 'Raw signatures (without automatic link)', 'tog-externaleditor' => 'Use external editor by default', +'tog-externaldiff' => 'Use external diff by default', # dates 'sunday' => 'Sunday', -- 2.20.1