Index: Article.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/includes/Article.php,v retrieving revision 1.453 diff -u -r1.453 Article.php --- Article.php 23 Jan 2006 22:32:44 -0000 1.453 +++ Article.php 4 Feb 2006 03:05:35 -0000 @@ -732,6 +732,7 @@ $diff = $wgRequest->getVal( 'diff' ); $rcid = $wgRequest->getVal( 'rcid' ); $rdfrom = $wgRequest->getVal( 'rdfrom' ); + $diffOnly = $wgRequest->getCheck( '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: DifferenceEngine.php =================================================================== RCS file: /cvsroot/wikipedia/phase3/includes/DifferenceEngine.php,v retrieving revision 1.85 diff -u -r1.85 DifferenceEngine.php --- DifferenceEngine.php 23 Jan 2006 19:41:03 -0000 1.85 +++ DifferenceEngine.php 4 Feb 2006 03:05:35 -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 ); } /**