Fix initSiteStats.php maintenance script

It appears not to have worked for some time, as it either calls a protected
function ($counter->refresh()) or an undefined function
($counter->update()) depending on the parameters specified.

Bug: 65214
Change-Id: Ia7d867792b84c98714ec6dbbfef09745e875c8bc
This commit is contained in:
This, that and the other 2014-05-27 18:09:24 +10:00 committed by Legoktm
parent 106e27260b
commit babe76221c
2 changed files with 18 additions and 18 deletions

View file

@ -273,7 +273,8 @@ class SiteStatsInit {
private $db;
// Various stats
private $mEdits, $mArticles, $mPages, $mUsers, $mViews, $mFiles = 0;
private $mEdits = null, $mArticles = null, $mPages = null;
private $mUsers = null, $mViews = null, $mFiles = null;
/**
* Constructor
@ -402,16 +403,17 @@ class SiteStatsInit {
}
/**
* Refresh site_stats.
* Refresh site_stats. If you want ss_total_views to be updated, be sure to
* call views() first.
*/
protected function refresh() {
public function refresh() {
$values = array(
'ss_row_id' => 1,
'ss_total_edits' => $this->mEdits,
'ss_good_articles' => $this->mArticles,
'ss_total_pages' => $this->mPages,
'ss_users' => $this->mUsers,
'ss_images' => $this->mFiles,
'ss_total_edits' => ( $this->mEdits === null ? $this->edits() : $this->mEdits ),
'ss_good_articles' => ( $this->mArticles === null ? $this->articles() : $this->mArticles ),
'ss_total_pages' => ( $this->mPages === null ? $this->pages() : $this->mPages ),
'ss_users' => ( $this->mUsers === null ? $this->users() : $this->mUsers ),
'ss_images' => ( $this->mFiles === null ? $this->files() : $this->mFiles ),
) + (
$this->mViews ? array( 'ss_total_views' => $this->mViews ) : array()
);

View file

@ -69,21 +69,19 @@ class InitSiteStats extends Maintenance {
$this->output( "{$views}\n" );
}
if ( $this->hasOption( 'update' ) ) {
$this->output( "\nUpdating site statistics..." );
$counter->refresh();
$this->output( "done.\n" );
}
if ( $this->hasOption( 'active' ) ) {
$this->output( "Counting active users..." );
$this->output( "\nCounting and updating active users..." );
$active = SiteStatsUpdate::cacheUpdate( wfGetDB( DB_MASTER ) );
$this->output( "{$active}\n" );
}
$this->output( "\nUpdating site statistics..." );
if ( $this->hasOption( 'update' ) ) {
$counter->update();
} else {
$counter->refresh();
}
$this->output( "done.\n" );
$this->output( "\nDone.\n" );
}
}