Exemple #1
0
 public function modify_score($score, $vote, $old_vote, $metric, $context_id)
 {
     $vote_diff = $vote - $old_vote;
     if ($vote !== $old_vote) {
         if ($vote === null) {
             $score['count']--;
         } elseif ($old_vote === null) {
             $score['count']++;
         }
     }
     $score['average'] += $vote_diff;
     $score['value'] = $score['average'];
     return parent::modify_score($score, $vote, $old_vote, $metric, $context_id);
 }
Exemple #2
0
 public function modify_score($score, $vote, $old_vote, $metric, $context_id)
 {
     $vote_diff = $vote - $old_vote;
     if (!isset($score['data']['positive'])) {
         $score['data']['positive_votes'] = 0;
     }
     if ($vote !== $old_vote) {
         if ($vote === null) {
             $score['count']--;
             if ($old_vote > 0) {
                 $score['data']['positive_votes']--;
             }
         } elseif ($old_vote === null) {
             $score['count']++;
             if ($vote > 0) {
                 $score['data']['positive_votes']++;
             }
         }
     }
     $score['average'] += $vote_diff;
     $score['value'] = self::calculate_wilson_score($score['data']['positive_votes'], $score['count']);
     return parent::modify_score($score, $vote, $old_vote, $metric, $context_id);
 }
Exemple #3
0
 public function modify_score($score, $vote, $old_vote, $metric, $context_id)
 {
     $vote_total = isset($vote['total']) ? $vote['total'] : 0;
     $old_vote_total = isset($old_vote['total']) ? $old_vote['total'] : 0;
     $vote_diff = $vote_total - $old_vote_total;
     $score['average'] = $score['average'] * $score['count'];
     error_log("vote comparison " . var_export($vote, true) . ' !== ' . var_export($old_vote, true) . ' = ' . ($vote !== $old_vote));
     if ($vote !== $old_vote) {
         if ($vote === null) {
             $score['count']--;
             error_log('decrement to ' . $score['count']);
         } elseif ($old_vote === null) {
             $score['count']++;
             error_log('increment to ' . $score['count']);
         }
     }
     if ($score['count'] == 0) {
         $score['average'] = 0;
     } else {
         $score['average'] = ($score['average'] + $vote_diff) / $score['count'];
     }
     $score['value'] = $score['average'];
     return parent::modify_score($score, $vote, $old_vote, $metric, $context_id);
 }
Exemple #4
0
 public function modify_score($score, $vote, $old_vote, $metric, $context_id)
 {
     $vote_diff = $vote - $old_vote;
     $score['average'] = $score['average'] * $score['count'];
     if ($vote !== $old_vote) {
         if ($vote === null) {
             $score['count']--;
         } elseif ($old_vote === null) {
             $score['count']++;
         }
     }
     if ($score['count'] == 0) {
         $score['average'] = 0;
         $score['value'] = 0;
     } else {
         $score['average'] = ($score['average'] + $vote_diff) / $score['count'];
         $score['value'] = self::calculate_bayesian_score($score['average'], $score['count'], $metric['options']['max']);
     }
     return parent::modify_score($score, $vote, $old_vote, $metric, $context_id);
 }
Exemple #5
0
 public function modify_score($score, $vote, $old_vote, $metric, $context_id)
 {
     if ($vote !== $old_vote) {
         if ($vote === null) {
             $score['count']--;
         } elseif ($old_vote === null) {
             $score['count']++;
         }
     }
     // Initialize the data array
     if (empty($score['data']['votes'])) {
         $answers_count = count(preg_split("/\r\n|\n|\r/", $metric['options']['answers']));
         for ($i = 0; $i < $answers_count; $i++) {
             $score['data']['votes'][$i] = 0;
         }
     }
     // Tally votes
     if ($old_vote !== null) {
         $score['data']['votes'][$old_vote]--;
     }
     if ($vote !== null) {
         $score['data']['votes'][$vote]++;
     }
     // Get the index for the highest value in our scores array.
     $score['average'] = array_keys($score['data']['votes'], max($score['data']['votes']))[0];
     $score['value'] = $score['average'];
     return parent::modify_score($score, $vote, $old_vote, $metric, $context_id);
 }