http://www.mediawiki.org/wiki/Special:Code/MediaWiki/60533

Revision: 60533
Author:   aaron
Date:     2010-01-01 01:35:37 +0000 (Fri, 01 Jan 2010)

Log Message:
-----------
* Changed 2-stage parsing to 1-state parsing for review. Expanded text isn't 
stored anymore, so this step isn't needed.
* Broke long lines

Modified Paths:
--------------
    trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php

Modified: trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php
===================================================================
--- trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php   
2009-12-31 22:32:54 UTC (rev 60532)
+++ trunk/extensions/FlaggedRevs/specialpages/RevisionReview_body.php   
2010-01-01 01:35:37 UTC (rev 60533)
@@ -31,7 +31,8 @@
 
     public function execute( $par ) {
         global $wgRequest, $wgUser, $wgOut;
-               $confirm = $wgRequest->wasPosted() && $wgUser->matchEditToken( 
$wgRequest->getVal( 'wpEditToken' ) );
+               $confirm = $wgRequest->wasPosted()
+                       && $wgUser->matchEditToken( $wgRequest->getVal( 
'wpEditToken' ) );
                if( $wgUser->isAllowed( 'review' ) ) {
                        if( $wgUser->isBlocked( !$confirm ) ) {
                                $wgOut->blockedPage();
@@ -150,7 +151,8 @@
        
        private function retrieveNotes( $notes = '' ) {
                global $wgUser;
-               $this->notes = ( FlaggedRevs::allowComments() && 
$wgUser->isAllowed('validate') ) ? $notes : '';
+               $this->notes = ( FlaggedRevs::allowComments() && 
$wgUser->isAllowed('validate') ) ?
+                       $notes : '';
        }
        
        public static function AjaxReview( /*$args...*/ ) {
@@ -252,7 +254,8 @@
                        return '<err#>' . wfMsgExt( 'revreview-failed', 
'parseinline' );
                } 
                // Doesn't match up?
-               $k = self::validationKey( $form->templateParams, 
$form->imageParams, $form->fileVersion, $form->oldid );
+               $k = self::validationKey( $form->templateParams, 
$form->imageParams,
+                       $form->fileVersion, $form->oldid );
                if( $form->validatedParams !== $k ) {
                        return '<err#>' . wfMsgExt( 'revreview-failed', 
'parseinline' );
                }
@@ -361,7 +364,8 @@
                $form .= Xml::hidden( 'wpApprove', $this->approve ) . "\n";
                $form .= Xml::hidden( 'rcid', $this->rcid ) . "\n";
                # Special token to discourage fiddling...
-               $checkCode = self::validationKey( $this->templateParams, 
$this->imageParams, $this->fileVersion, $rev->getId() );
+               $checkCode = self::validationKey( $this->templateParams, 
$this->imageParams,
+                       $this->fileVersion, $rev->getId() );
                $form .= Xml::hidden( 'validatedParams', $checkCode );
                $form .= '</fieldset>';
 
@@ -379,7 +383,8 @@
                $difflink = '(' . $this->skin->makeKnownLinkObj( $this->page, 
wfMsgHtml('diff'),
                        '&diff=' . $rev->getId() . '&oldid=prev' ) . ')';
                $revlink = $this->skin->makeLinkObj( $this->page, $date, 
'oldid=' . $rev->getId() );
-               return "<li>$difflink $revlink " . 
$this->skin->revUserLink($rev) . " " . $this->skin->revComment($rev) . "</li>";
+               return "<li>$difflink $revlink " . 
$this->skin->revUserLink($rev) . " " .
+                       $this->skin->revComment($rev) . "</li>";
        }
        
        public function isApproval() {
@@ -482,7 +487,7 @@
                # Our flags
                $flags = $this->dims;
                # Some validation vars to make sure nothing changed during
-               $lastTempID = 0;
+               $lastTempId = 0;
                $lastImgTime = "0";
                # Our template version pointers
                $tmpset = $tmpParams = array();
@@ -501,8 +506,8 @@
                        if( is_null($tmp_title) )
                                continue; // Page must be valid!
 
-                       if( $rev_id > $lastTempID )
-                               $lastTempID = $rev_id;
+                       if( $rev_id > $lastTempId )
+                               $lastTempId = $rev_id;
 
                        $tmpset[] = array(
                                'ft_rev_id' => $rev->getId(),
@@ -563,33 +568,33 @@
                
                # Is this rev already flagged?
                $flaggedOutput = false;
-               if( $oldfrev = FlaggedRevision::newFromTitle( $this->page, 
$rev->getId(), FR_TEXT | FR_MASTER ) ) {
-                       $flaggedOutput = FlaggedRevs::parseStableText( 
$article, $oldfrev->getRevText(), $oldfrev->getRevId() );
+               $oldfrev = FlaggedRevision::newFromTitle( $this->page, 
$rev->getId(),
+                       FR_TEXT | FR_MASTER );
+               if( $oldfrev ) {
+                       $flaggedOutput = FlaggedRevs::parseStableText( 
$article, $oldfrev->getRevText(),
+                               $oldfrev->getRevId() );
                }
                
                # Be looser on includes for templates, since they don't matter 
much
                # and strict checking breaks randomized 
images/metatemplates...(bug 14580)
                global $wgUseCurrentTemplates, $wgUseCurrentImages;
-               $noMatch = ($rev->getTitle()->getNamespace() == NS_TEMPLATE && 
$wgUseCurrentTemplates && $wgUseCurrentImages);
+               $noMatch = ($rev->getTitle()->getNamespace() == NS_TEMPLATE
+                       && $wgUseCurrentTemplates && $wgUseCurrentImages);
                
                # Set our versioning params cache
                FlaggedRevs::setIncludeVersionCache( $rev->getId(), $tmpParams, 
$imgParams );
-        # Get the expanded text and resolve all templates.
-               # Store $templateIDs and add it to final parser output later...
-        list($fulltext,$tmps,$tmpIDs,$err,$maxID) = FlaggedRevs::expandText( 
$rev->getText(), $rev->getTitle(), $rev->getId() );
-        if( !$noMatch && (!empty($err) || $maxID > $lastTempID) ) {
-                       wfProfileOut( __METHOD__ );
-               return $err;
-        }
-               # Parse the rest and check if it matches up
-               $stableOutput = FlaggedRevs::parseStableText( $article, 
$fulltext, $rev->getId() );
+               # Parse the text and check if all templates/files match up
+               $stableOutput = FlaggedRevs::parseStableText( $article, 
$rev->getText(), $rev->getId() );
                $err =& $stableOutput->fr_includeErrors;
-               if( !$noMatch && (!empty($err) || 
$stableOutput->fr_newestImageTime > $lastImgTime) ) {
-                       wfProfileOut( __METHOD__ );
-               return $err;
+               if( !$noMatch ) { // template/files must all be specified
+                       if( !empty($err)
+                               || $stableOutput->fr_newestImageTime > 
$lastImgTime
+                               || $stableOutput->fr_newestTemplateID > 
$lastTempId )
+                       {
+                               wfProfileOut( __METHOD__ );
+                               return $err; // return templates/files with no 
version specified
+                       }
         }
-               # Merge in template params from first phase of parsing...
-               $this->mergeTemplateParams( $stableOutput, $tmps, $tmpIDs, 
$maxID );
                # Clear our versioning params cache
                FlaggedRevs::clearIncludeVersionCache( $rev->getId() );
                
@@ -644,7 +649,9 @@
                # Try using the parser cache first since we didn't actually 
edit the current version.
                $parserCache = ParserCache::singleton();
                $poutput = $parserCache->get( $article, $wgUser );
-               if( !$poutput || !isset($poutput->fr_newestTemplateID) || 
!isset($poutput->fr_newestImageTime) ) {
+               if( !$poutput || !isset($poutput->fr_newestTemplateID)
+                       || !isset($poutput->fr_newestImageTime) )
+               {
                        $text = $article->getContent();
                        $options = FlaggedRevs::makeParserOptions();
                        $poutput = $wgParser->parse( $text, $article->mTitle, 
$options );



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to