_sql_get_rating_result($dimension, null, null, 'numrating', "rater"); $dbh = &$rdbi->_sqlbackend; extract($dbh->_table_names); $query = "SELECT raterpage, COUNT(rateepage) as numrating" . " FROM $rating_tbl r, $page_tbl p " // . " WHERE ratingvalue > 0 AND numrating > 5" . " WHERE ratingvalue > 0" . " GROUP BY raterpage" . " ORDER BY numrating" . " LIMIT 10"; $result = $dbh->_dbh->query($query); } else { // from 10 random raters of this page (non-SQL) ; } } $result = array(); if (is_array($buddies_array)) foreach ($buddies_array as $userid) { $result[] = new RatingsUser($userid); } return $result; } function CoAgreement($dbi, $page, $users, $active_userid) { //Returns a "yes" 1, "no" -1, or "unsure" 0 for whether //the group agrees on the page based on their ratings $cur_page = $page; $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page); $my_ratings_single = $my_ratings_iter->next(); $cur_rating = $my_ratings_single['ratingvalue']; $MIDDLE_RATING = 3; if ($cur_rating >= $MIDDLE_RATING) { $agreePos = 1; } else { $agreePos = 0; } foreach ($users as $buddy) { $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page); $buddy_rating_array = $buddy_rating_iter->next(); $buddy_rating = $buddy_rating_array['ratingvalue']; if ($buddy_rating == "") { $agree = 1; } elseif ($agreePos && $buddy_rating >= $MIDDLE_RATING) { $agree = 1; } elseif (!$agreePos && $buddy_rating < $MIDDLE_RATING) { $agree = 1; } else { $agree = 0; break; } } if ($agree && $agreePos) { return 1; } elseif ($agree && !$agreePos) { return -1; } else { return 0; } } function MinMisery($dbi, $page, $users, $active_userid) { //Returns the minimum rating for the page //from all the users. $cur_page = $page; $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page); $my_ratings_single = $my_ratings_iter->next(); $cur_rating = $my_ratings_single['ratingvalue']; $min = $cur_rating; foreach ($users as $buddy) { $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page); $buddy_rating_array = $buddy_rating_iter->next(); $buddy_rating = $buddy_rating_array['ratingvalue']; if ($buddy_rating != "" && $buddy_rating < $min) { $min = $buddy_rating; } } return $min; } function AverageRating($dbi, $page, $users, $active_userid) { //Returns the average rating for the page //from all the users. $cur_page = $page; $my_ratings_iter = $dbi->get_rating(0, $active_userid, $page); $my_ratings_single = $my_ratings_iter->next(); $cur_rating = $my_ratings_single['ratingvalue']; if ($cur_rating != "") { $total = $cur_rating; $count = 1; } else { $total = 0; $count = 0; } foreach ($users as $buddy) { $buddy_rating_iter = $dbi->get_rating(0, $buddy, $cur_page); $buddy_rating_array = $buddy_rating_iter->next(); $buddy_rating = $buddy_rating_array['ratingvalue']; if ($buddy_rating != "") { $total = $total + $buddy_rating; $count++; } } if ($count == 0) { return 0; } else { return $total / $count; } } // Local Variables: // mode: php // tab-width: 8 // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil // End: