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

Revision: 72961
Author:   nikerabbit
Date:     2010-09-14 09:23:43 +0000 (Tue, 14 Sep 2010)

Log Message:
-----------
Fix broken r72956 with another approach

Modified Paths:
--------------
    trunk/phase3/includes/ResourceLoaderModule.php

Modified: trunk/phase3/includes/ResourceLoaderModule.php
===================================================================
--- trunk/phase3/includes/ResourceLoaderModule.php      2010-09-14 09:08:49 UTC 
(rev 72960)
+++ trunk/phase3/includes/ResourceLoaderModule.php      2010-09-14 09:23:43 UTC 
(rev 72961)
@@ -740,28 +740,26 @@
                if ( isset( $this->modifiedTime[$hash] ) ) {
                        return $this->modifiedTime[$hash];
                }
+
                $titles = array();
                foreach ( $this->getPages( $context ) as $page => $options ) {
-                       $titles[] = Title::makeTitle( $options['ns'], $page );
+                       $titles[$options['ns']][$page] = true;
                }
-               // Do batch existence check
-               // TODO: This would work better if page_touched were loaded by 
this as well
-               $lb = new LinkBatch( $titles );
-               $lb->setCaller( __METHOD__ );
-               $lb->execute();
+
                $modifiedTime = 1; // wfTimestamp() interprets 0 as "now"
 
-               $ids = array();
-               foreach ( $titles as $title ) {
-                       if ( $title->exists() ) {
-                               $ids[] = $title->getArticleId();
+               if ( $titles ) {
+                       $dbr = wfGetDB( DB_SLAVE );
+                       $latest = $dbr->selectField( 'page', 
'MAX(page_touched)',
+                               $dbr->makeWhereFrom2d( $titles, 
'page_namespace', 'page_title' ),
+                               __METHOD__ );
+
+                       if ( $latest ) {
+                               $modifiedTime = wfTimestamp( TS_UNIX, 
$modifiedTime );
                        }
                }
 
-               $dbr = wfGetDB( DB_SLAVE );
-               $modifiedTime = $dbr->selectField( 'page', 'MAX(page_touched)', 
array( 'page_id' => $ids ), __METHOD__ );
-
-               return $this->modifiedTime[$hash] = wfTimestamp( TS_UNIX, 
$modifiedTime );
+               return $this->modifiedTime[$hash] = $modifiedTime;
        }
 }
 



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to