/** * * @param object The entry whose rating is retrieved * @param bool Whether to include all the rating records of the rating * @return object rating */ public function get_entry_rating($entry, $addrecords = false) { if (empty($entry->id) or $entry->id < 0) { return null; } global $CFG; $rm = new ratingmdl_rating_manager(); $context = $this->df->context; $fieldname = $this->name; // Get entry rating objects. $scaleid = $this->get_scaleid($entry); $options = new object(); $options->context = $context; $options->component = 'mod_dataform'; $options->ratingarea = $fieldname; $options->scaleid = $scaleid; $rec = new object(); $rec->itemid = $entry->id; $rec->context = $context; $rec->component = 'mod_dataform'; $rec->ratingarea = $fieldname; $rec->settings = $rm->get_rating_settings_object($options); $rec->aggregate = array_keys($rm->get_aggregate_types()); $rec->scaleid = $scaleid; $rec->userid = $this->get_entry_rating_element($entry, 'ratinguserid'); $rec->id = $this->get_entry_rating_element($entry, 'ratingid'); $rec->usersrating = $this->get_entry_rating_element($entry, 'usersrating'); $rec->numratings = $this->get_entry_rating_element($entry, 'numratings'); $rec->avgratings = $this->get_entry_rating_element($entry, 'avgratings'); $rec->sumratings = $this->get_entry_rating_element($entry, 'sumratings'); $rec->maxratings = $this->get_entry_rating_element($entry, 'maxratings'); $rec->minratings = $this->get_entry_rating_element($entry, 'minratings'); $rating = $rm->get_rating_object($entry, $rec); if ($addrecords) { if ($rating->records = $this->get_rating_records(array('itemid' => $entry->id))) { $rating->records = array(); } } return $rating; }