echo "Nothing to do -- \$wgUseFileCache is disabled.\n";
exit(0);
}
+$wgDisableCounters = false; // no real hits here
$start = isset($args[0]) ? intval($args[0]) : 0;
+$overwrite = isset( $args[1] ) && $args[1] === 'overwrite';
echo "Building content page file cache from page {$start}!\n";
+echo "Format: <start> [overwrite]\n";
$dbr = wfGetDB( DB_SLAVE );
$start = $start > 0 ? $start : $dbr->selectField( 'page', 'MIN(page_id)', false, __FUNCTION__ );
$blockStart = $start;
$blockEnd = $start + $BATCH_SIZE - 1;
+$dbw = wfGetDB( DB_MASTER );
// Go through each page and save the output
while( $blockEnd <= $end ) {
// Get the pages
array('ORDER BY' => 'page_id ASC','USE INDEX' => 'PRIMARY')
);
while( $row = $dbr->fetchObject( $res ) ) {
+ $rebuilt = false;
$wgTitle = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
if( null == $wgTitle ) {
echo "Page {$row->page_id} bad title\n";
if( $wgArticle->isFileCacheable() ) {
$cache = new HTMLFileCache( $wgTitle );
if( $cache->isFileCacheGood() ) {
- echo "Page {$row->page_id} already cached\n";
- continue; // done already!
- } else {
- echo "Page {$row->page_id} not cached\n";
+ if( $overwrite ) {
+ $rebuilt = true;
+ } else {
+ echo "Page {$row->page_id} already cached\n";
+ continue; // done already!
+ }
}
ob_start( array(&$cache, 'saveToFileCache' ) ); // save on ob_end_clean()
$wgUseFileCache = false; // hack, we don't want $wgArticle fiddling with filecache
$wgUseFileCache = true;
ob_end_clean(); // clear buffer
$wgOut = new OutputPage(); // empty out any output page garbage
- echo "Cached page {$row->page_id}\n";
+ if( $rebuilt )
+ echo "Re-cached page {$row->page_id}\n";
+ else
+ echo "Cached page {$row->page_id}\n";
} else {
echo "Page {$row->page_id} not cacheable\n";
}
+ $dbw->commit(); // commit any changes
}
$blockStart += $BATCH_SIZE;
$blockEnd += $BATCH_SIZE;