Preload rating data for list guis.
239 {
241
244
245 $tmp =
$res = $tmp_user = $res_user = array();
246
247
248 $q = "SELECT obj_id, obj_type, user_id, AVG(rating) av" .
249 " FROM il_rating" .
250 " WHERE " .
$ilDB->in(
"obj_id", $a_obj_ids,
"",
"integer") .
251 " AND sub_obj_id = " .
$ilDB->quote(0,
"integer") .
252 " GROUP BY obj_id, obj_type, user_id";
253 $set =
$ilDB->query($q);
254 while ($rec =
$ilDB->fetchAssoc($set)) {
255 $tmp[$rec["obj_type"] . "/" . $rec["obj_id"]][$rec["user_id"]] = (float) $rec["av"];
256 if ($rec[
"user_id"] ==
$ilUser->getId()) {
257
258 $res_user[$rec["obj_type"] . "/" . $rec["obj_id"]] = (float) $rec["av"];
259 }
260 }
261
262
263 foreach ($tmp as $obj_id => $votes) {
264 $res[$obj_id] = array(
"avg" => array_sum($votes) /
sizeof($votes),
265 "cnt" => sizeof($votes));
266 }
267
268
269
270 $set =
$ilDB->query(
"SELECT file_id, rating" .
271 " FROM file_data" .
272 " WHERE " .
$ilDB->in(
"file_id", $a_obj_ids,
"",
'integer'));
273 while ($row =
$ilDB->fetchAssoc($set)) {
274 $id = "file/" . $row["file_id"];
275 if ($row[
"rating"] && !isset(
$res[$id])) {
276 $res[$id] = array(
"avg" => 0,
"cnt" => 0);
277 } elseif (!$row[
"rating"] && isset(
$res[$id])) {
279 }
280 }
281
282 $set =
$ilDB->query(
"SELECT id, rating_overall" .
283 " FROM il_wiki_data" .
284 " WHERE " .
$ilDB->in(
"id", $a_obj_ids,
"",
'integer'));
285 while ($row =
$ilDB->fetchAssoc($set)) {
286 $id = "wiki/" . $row["id"];
287 if ($row[
"rating_overall"] && !isset(
$res[$id])) {
288 $res[$id] = array(
"avg" => 0,
"cnt" => 0);
289 } elseif (!$row[
"rating_overall"] && isset(
$res[$id])) {
291 }
292 }
293
294 $set =
$ilDB->query(
"SELECT id, rating" .
295 " FROM content_object" .
296 " WHERE " .
$ilDB->in(
"id", $a_obj_ids,
"",
'integer'));
297 while ($row =
$ilDB->fetchAssoc($set)) {
298 $id = "lm/" . $row["id"];
299 if ($row[
"rating"] && !isset(
$res[$id])) {
300 $res[$id] = array(
"avg" => 0,
"cnt" => 0);
301 } elseif (!$row[
"rating"] && isset(
$res[$id])) {
303 }
304 }
305
306 self::$list_data = array(
"all" =>
$res,
"user" => $res_user);
307 }