コード例 #1
0
$ratingoptions->component = $component;
$ratingoptions->itemid = $itemid;
$ratingoptions->scaleid = $scaleid;
$ratingoptions->userid = $USER->id;
if ($userrating != RATING_UNSET_RATING) {
    $rating = new rating($ratingoptions);
    $rating->update_rating($userrating);
} else {
    // Delete the rating if the user set to Rate.
    $options = new stdClass();
    $options->contextid = $context->id;
    $options->component = $component;
    $options->ratingarea = $ratingarea;
    $options->userid = $USER->id;
    $options->itemid = $itemid;
    $rm->delete_ratings($options);
}
// Try to update grades in case grading by entries.
$df->grade_manager->update_calculated_grades(array('userid' => $rateduserid));
// Need to retrieve the updated item to get its new aggregate value.
$item = new stdClass();
$item->id = $itemid;
// Most of $ratingoptions variables were previously set.
$ratingoptions->items = array($itemid => $item);
$ratingoptions->aggregate = array(RATING_AGGREGATE_AVERAGE, RATING_AGGREGATE_MAXIMUM, RATING_AGGREGATE_MINIMUM, RATING_AGGREGATE_SUM);
$items = $rm->get_ratings($ratingoptions);
$firstitem = reset($items);
$aggr = $field->get_rating_display_aggregates($firstitem->rating);
// Result.
$result->success = true;
$result->ratingcount = $aggr->count;