aboutsummaryrefslogtreecommitdiffstats
path: root/includes/SiteStatsUpdate.php
blob: f44a3ed9acb479f1ae44e8a5054624b320a3d29f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?php
# $Id$
/**
 * See deferred.doc
 *
 * @package MediaWiki
 */

/**
 *
 * @package MediaWiki
 */
class SiteStatsUpdate {

	var $mViews, $mEdits, $mGood;

	function SiteStatsUpdate( $views, $edits, $good ) {
		$this->mViews = $views;
		$this->mEdits = $edits;
		$this->mGood = $good;
	}

	function doUpdate() {
		$a = array();

		if ( $this->mViews < 0 ) { $m = '-1'; }
		else if ( $this->mViews > 0 ) { $m = '+1'; }
		else $m = '';
		array_push( $a, "ss_total_views=(ss_total_views$m)" );

		if ( $this->mEdits < 0 ) { $m = '-1'; }
		else if ( $this->mEdits > 0 ) { $m = '+1'; }
		else $m = '';
		array_push( $a, "ss_total_edits=(ss_total_edits$m)" );

		if ( $this->mGood < 0 ) { $m = '-1'; }
		else if ( $this->mGood > 0 ) { $m = '+1'; }
		else $m = '';
		array_push( $a, "ss_good_articles=(ss_good_articles$m)" );

		$db =& wfGetDB( DB_MASTER );
		$site_stats = $db->tableName( 'site_stats' );
		$lowpri = $db->lowPriorityOption();

		$sql = "UPDATE $lowpri $site_stats SET " . implode ( ',', $a ) .
		  ' WHERE ss_row_id=1';
		$db->query( $sql, 'SiteStatsUpdate::doUpdate' );
	}
}

?>