private static function updateDatabase( $title, $assessments, $timestamp ) { $main_title = Title::makeTitle( NS_MAIN, $title->getText() ); $ratings = Rating::forTitle( $main_title ); foreach ( $assessments as $project => $assessment ) { $curRating = $ratings[$project]; if( $curRating ) { $curRating->update( $assessment['importance'], $assessment['quality'], $timestamp ); } else { $rating = new Rating( $project, $main_title->getNamespace(), $main_title->getText(), $assessment['quality'], $timestamp, $assessment['importance'], $timestamp ); $rating->saveAll(); if( isset( $assessment['quality'] ) ) { AssessmentChangeLog::makeEntry( $project, $main_title->getNamespace(), $main_title->getText(), $timestamp, "quality", "", $assessment['quality'], $timestamp ); } if( isset( $assessment['importance'] ) ) { AssessmentChangeLog::makeEntry( $project, $main_title->getNamespace(), $main_title->getText(), $timestamp, "importance", "", $assessment['importance'], $timestamp ); } } } }
public function update( $importance, $quality, $timestamp ) { $logAction = ""; // q for quality change, i for importance change, qi for both if( $quality != $this->quality ) { $this->old_quality = $this->quality; $this->quality = $quality; $this->quality_timestamp = $timestamp; $logAction .= "q"; } if( $importance != $this->importance ) { $this->old_importance = $this->importance; $this->importance = $importance; $this->importance_timestamp = $timestamp; $logAction .= "i"; } if( $logAction != "") { $timestamp = wfTimestamp( TS_MW ); if( strpos( $logAction, 'q' ) !== false ) { AssessmentChangeLog::makeEntry( $this->project, $this->namespace, $this->title, $timestamp, "quality", $this->old_quality, $this->quality, $timestamp ); } if( strpos( $logAction, 'i' ) !== false ) { AssessmentChangeLog::makeEntry( $this->project, $this->namespace, $this->title, $timestamp, "importance", $this->old_importance, $this->importance, $timestamp ); } $this->saveAll(); } }