ILIAS  Release_4_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilRating.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
15 class ilRating
16 {
27  static function writeRatingForUserAndObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type,
28  $a_user_id, $a_rating)
29  {
30  global $ilDB;
31 
32  if ($a_user_id == ANONYMOUS_USER_ID)
33  {
34  return;
35  }
36 
37  $ilDB->manipulate("DELETE FROM il_rating WHERE ".
38  "user_id = ".$ilDB->quote($a_user_id, "integer")." AND ".
39  "obj_id = ".$ilDB->quote((int) $a_obj_id, "integer")." AND ".
40  "obj_type = ".$ilDB->quote($a_obj_type, "text")." AND ".
41  "sub_obj_id = ".$ilDB->quote((int) $a_sub_obj_id, "integer")." AND ".
42  $ilDB->equals("sub_obj_type", $a_sub_obj_type, "text", true));
43 
44  $ilDB->manipulate("INSERT INTO il_rating (user_id, obj_id, obj_type,".
45  "sub_obj_id, sub_obj_type, rating) VALUES (".
46  $ilDB->quote($a_user_id, "integer").",".
47  $ilDB->quote((int) $a_obj_id, "integer").",".
48  $ilDB->quote($a_obj_type, "text").",".
49  $ilDB->quote((int) $a_sub_obj_id, "integer").",".
50  $ilDB->quote($a_sub_obj_type, "text").",".
51  $ilDB->quote((int) $a_rating, "integer").")");
52  }
53 
63  static function getRatingForUserAndObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type,
64  $a_user_id)
65  {
66  global $ilDB;
67 
68  $q = "SELECT * FROM il_rating WHERE ".
69  "user_id = ".$ilDB->quote($a_user_id, "integer")." AND ".
70  "obj_id = ".$ilDB->quote((int) $a_obj_id, "integer")." AND ".
71  "obj_type = ".$ilDB->quote($a_obj_type, "text")." AND ".
72  "sub_obj_id = ".$ilDB->quote((int) $a_sub_obj_id, "integer")." AND ".
73  $ilDB->equals("sub_obj_type", $a_sub_obj_type, "text", true);
74  $set = $ilDB->query($q);
75  $rec = $ilDB->fetchAssoc($set);
76  return $rec["rating"];
77  }
78 
87  static function getOverallRatingForObject($a_obj_id, $a_obj_type, $a_sub_obj_id, $a_sub_obj_type)
88  {
89  global $ilDB;
90 
91  $q = "SELECT count(*) as cnt, AVG(rating) as av FROM il_rating WHERE ".
92  "obj_id = ".$ilDB->quote((int) $a_obj_id, "integer")." AND ".
93  "obj_type = ".$ilDB->quote($a_obj_type, "text")." AND ".
94  "sub_obj_id = ".$ilDB->quote((int) $a_sub_obj_id, "integer")." AND ".
95  $ilDB->equals("sub_obj_type", $a_sub_obj_type, "text", true);
96  $set = $ilDB->query($q);
97  $rec = $ilDB->fetchAssoc($set);
98  return array("cnt" => $rec["cnt"], "avg" => $rec["av"]);
99  }
100 
101 }
102 
103 ?>