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