Index: includes/Article.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/includes/Article.php,v retrieving revision 1.454 diff -u -r1.454 Article.php --- includes/Article.php 28 Jan 2006 00:35:34 -0000 1.454 +++ includes/Article.php 6 Feb 2006 03:54:57 -0000 @@ -732,6 +732,7 @@ $diff = $wgRequest->getVal( 'diff' ); $rcid = $wgRequest->getVal( 'rcid' ); $rdfrom = $wgRequest->getVal( 'rdfrom' ); + $diffOnly = $wgRequest->getBool( 'diffonly', $wgUser->getOption( 'diffonly' ) ); $wgOut->setArticleFlag( true ); $wgOut->setRobotpolicy( 'index,follow' ); @@ -742,7 +743,7 @@ require_once( 'DifferenceEngine.php' ); $wgOut->setPageTitle( $this->mTitle->getPrefixedText() ); - $de = new DifferenceEngine( $this->mTitle, $oldid, $diff, $rcid ); + $de = new DifferenceEngine( $this->mTitle, $oldid, $diff, $rcid, $diffOnly ); // DifferenceEngine directly fetched the revision: $this->mRevIdFetched = $de->mNewid; $de->showDiffPage(); Index: includes/DifferenceEngine.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/includes/DifferenceEngine.php,v retrieving revision 1.85 diff -u -r1.85 DifferenceEngine.php --- includes/DifferenceEngine.php 23 Jan 2006 19:41:03 -0000 1.85 +++ includes/DifferenceEngine.php 6 Feb 2006 03:54:57 -0000 @@ -39,9 +39,12 @@ * @param integer $old Old ID we want to show and diff with. * @param string $new Either 'prev' or 'next'. * @param integer $rcid ??? (default 0) + * @param boolean $diffOnly only show diff, not rendered article */ - function DifferenceEngine( $titleObj = null, $old = 0, $new = 0, $rcid = 0 ) { + function DifferenceEngine( $titleObj = null, $old = 0, $new = 0, $rcid = 0, $diffOnly = false ) { $this->mTitle = $titleObj; + $this->diffOnly = $diffOnly; + wfDebug("DifferenceEngine old '$old' new '$new' rcid '$rcid'\n"); if ( 'prev' == $new ) { @@ -198,23 +201,32 @@ '
' . $nextlink . $patrol; $this->showDiff( $oldHeader, $newHeader ); - $wgOut->addHTML( "

{$this->mPagetitle}

\n" ); - if( !$this->mNewRev->isCurrent() ) { - $oldEditSectionSetting = $wgOut->mParserOptions->setEditSection( false ); + if ( ! $this->diffOnly ) { + $this->showArticle(); } + wfProfileOut( $fname ); + } + + /** + * Show the rendered article + */ + function showArticle() { + global $wgOut; + + $wgOut->addHTML( "

{$this->mPagetitle}

\n" ); $this->loadNewText(); if( is_object( $this->mNewRev ) ) { $wgOut->setRevisionId( $this->mNewRev->getId() ); } $wgOut->addSecondaryWikiText( $this->mNewtext ); - + if( !$this->mNewRev->isCurrent() ) { + $oldEditSectionSetting = $wgOut->mParserOptions->setEditSection( false ); + } if( !$this->mNewRev->isCurrent() ) { $wgOut->mParserOptions->setEditSection( $oldEditSectionSetting ); } - - wfProfileOut( $fname ); } /** Index: languages/Language.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/languages/Language.php,v retrieving revision 1.799 diff -u -r1.799 Language.php --- languages/Language.php 1 Feb 2006 04:41:53 -0000 1.799 +++ languages/Language.php 6 Feb 2006 03:55:01 -0000 @@ -83,6 +83,7 @@ 'externaldiff' => 0, 'showjumplinks' => 1, 'numberheadings' => 0, + 'diffonly' => 0, ); /* private */ $wgQuickbarSettingsEn = array( @@ -156,6 +157,7 @@ 'externaleditor', 'externaldiff', 'showjumplinks', + 'diffonly', ); /* private */ $wgBookstoreListEn = array( Index: languages/Messages.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/languages/Messages.php,v retrieving revision 1.3 diff -u -r1.3 Messages.php --- languages/Messages.php 4 Feb 2006 18:42:43 -0000 1.3 +++ languages/Messages.php 6 Feb 2006 04:01:08 -0000 @@ -59,6 +59,7 @@ 'tog-externaleditor' => 'Use external editor by default', 'tog-externaldiff' => 'Use external diff by default', 'tog-showjumplinks' => 'Enable "jump to" accessibility links', +'tog-diffonly' => 'Show diffs without article body', 'underline-always' => 'Always', 'underline-never' => 'Never',