Пример #1
0
 /**
  *
  * @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;
 }