135 public static function handleEvent($a_event,
ilWikiPage $a_page_obj, $a_user_id =
null, array $a_additional_data =
null)
143 if(!$a_user_id || $a_user_id == ANONYMOUS_USER_ID)
148 switch((
int)$a_event)
182 return date(
"Y-m-d H:00:00");
195 protected static function writeData($a_table, array $a_primary, array $a_values)
200 $a_primary[
"ts"] = array(
"timestamp", $tstamp);
205 foreach($a_primary as $column => $value)
207 $primary[] = $column.
" = ".
$ilDB->quote($value[1], $value[0]);
209 $primary = implode(
" AND ", $primary);
211 $set =
$ilDB->query(
"SELECT ts FROM ".$a_table.
214 $is_update = (bool)
$ilDB->numRows($set);
220 foreach($a_values as $column => $value)
222 if($value[0] ==
"increment")
224 $values[] = $column.
" = ".$column.
"+1";
226 else if($value[0] ==
"decrement")
228 $values[] = $column.
" = ".$column.
"-1";
232 $values[] = $column.
" = ".
$ilDB->quote($value[1], $value[0]);
235 $values = implode(
", ", $values);
237 $sql =
"UPDATE ".$a_table.
244 $a_values = array_merge($a_primary, $a_values);
245 $a_values[
"ts_day"] = array(
"text", substr($tstamp, 0, 10));
246 $a_values[
"ts_hour"] = array(
"integer", (
int)substr($tstamp, 11, 2));
249 foreach($a_values as $column => $value)
252 if($value[0] ==
"increment")
254 $value[0] =
"integer";
256 else if($value[0] ==
"decrement")
258 $value[0] =
"integer";
261 $values[] =
$ilDB->quote($value[1], $value[0]);
263 $values = implode(
", ", $values);
266 $sql =
"INSERT INTO ".$a_table.
268 " VALUES (".$values.
")";
270 $ilDB->manipulate($sql);
272 $ilDB->unlockTables();
283 protected static function writeStat($a_wiki_id, $a_values)
286 "wiki_id" => array(
"integer", $a_wiki_id)
301 "wiki_id" => array(
"integer", $a_wiki_id),
302 "page_id" => array(
"integer", $a_page_id),
318 "wiki_id" => array(
"integer", $a_wiki_id),
319 "page_id" => array(
"integer", $a_page_id),
320 "user_id" => array(
"integer", $a_user_id)
335 "wiki_id" => array(
"integer", $a_wiki_id),
336 "user_id" => array(
"integer", $a_user_id)
361 include_once
"Services/Rating/classes/class.ilRating.php";
390 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId()))
396 "new_pages" => array(
"increment", 1)
412 "changes" => array(
"increment", 1)
417 "int_links" => array(
"integer", $a_page_data[
"int_links"]),
418 "ext_links" => array(
"integer", $a_page_data[
"ext_links"]),
419 "footnotes" => array(
"integer", $a_page_data[
"footnotes"]),
420 "num_words" => array(
"integer", $a_page_data[
"num_words"]),
421 "num_chars" => array(
"integer", $a_page_data[
"num_chars"])
437 "read_events" => array(
"increment", 1)
453 " FROM wiki_stat_page".
454 " WHERE wiki_id = ".$ilDB->quote($a_page_obj->
getWikiId(),
"integer").
455 " AND page_id = ".$ilDB->quote($a_page_obj->
getId(),
"integer");
458 $set =
$ilDB->query($sql);
461 if(
$ilDB->numRows($set))
467 "int_links" => array(
"integer",
$data[
"int_links"]),
468 "ext_links" => array(
"integer",
$data[
"ext_links"]),
469 "footnotes" => array(
"integer",
$data[
"footnotes"]),
470 "num_words" => array(
"integer",
$data[
"num_words"]),
471 "num_chars" => array(
"integer",
$data[
"num_chars"]),
472 "num_ratings" => array(
"integer",
$data[
"num_ratings"]),
473 "avg_rating" => array(
"integer",
$data[
"avg_rating"]),
479 $ilDB->manipulate(
"UPDATE wiki_stat_page".
480 " SET deleted = ".
$ilDB->quote(1,
"integer").
481 " WHERE page_id = ".$ilDB->quote($a_page_obj->
getId(),
"integer").
482 " AND wiki_id = ".$ilDB->quote($a_page_obj->
getWikiId(),
"integer"));
488 "del_pages" => array(
"increment", 1),
489 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId())),
490 "avg_rating" => array(
"integer", $rating[
"avg"]*100)
508 "num_ratings" => array(
"integer", $rating[
"cnt"]),
509 "avg_rating" => array(
"integer", $rating[
"avg"]*100),
517 "avg_rating" => array(
"integer", $rating[
"avg"]*100)
525 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId()))
535 protected static function getWikiAggr($a_wiki_id, $a_day_from, $a_day_to, $a_table, $a_field, $a_aggr_value, $a_sub_field =
null, $a_sub_id =
null, $a_build_full_period =
false)
542 $sql =
"SELECT ts_day, ".sprintf($a_aggr_value, $a_field).
" ".$a_field;
543 if($a_table ==
"wiki_stat_page" && $a_sub_field)
545 $sql .=
", MAX(deleted) deleted";
547 $sql .=
" FROM ".$a_table.
548 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
549 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
550 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text");
551 if(!$a_build_full_period)
554 $sql .=
" AND ".$a_field.
" > ".
$ilDB->quote(0,
"integer").
555 " AND ".$a_field.
" IS NOT NULL";
559 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
561 $sql .=
" GROUP BY ts_day".
563 $set =
$ilDB->query($sql);
568 $deleted = max(
$row[
"deleted"], $deleted);
571 if($a_build_full_period)
573 $period_first = $a_day_from;
574 $period_last = $a_day_to;
577 if($a_table ==
"wiki_stat_page" && $a_sub_field && $deleted)
579 $sql =
"SELECT MAX(ts_day) last_day, MIN(ts_day) first_day".
581 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
582 " AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
583 $set =
$ilDB->query($sql);
585 $last_day =
$row[
"last_day"];
586 if($last_day < $period_last)
588 $period_last = $last_day;
590 $first_day =
$row[
"first_day"];
591 if($first_day > $period_first)
593 $period_first = $first_day;
597 $last_before_period =
null;
598 if(!
$res[$a_day_from])
600 $last_before_period =
self::getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_sub_field, $a_sub_id);
610 protected static function getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_sub_field =
null, $a_sub_id =
null)
615 $sql =
"SELECT MAX(".$a_field.
") latest".
617 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
618 " AND ts_day < ".$ilDB->quote($a_day_from,
"text");
621 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
623 $sql .=
" GROUP BY ts_day".
624 " ORDER BY ts_day DESC";
626 $set =
$ilDB->query($sql);
627 $last_before_period =
$ilDB->fetchAssoc($set);
628 return $last_before_period[
"latest"];
631 protected static function getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to, $a_table, $a_field, $a_aggr_by, $a_aggr_value, $a_aggr_sub, $a_sub_field =
null, $a_sub_id =
null, $a_build_full_period =
false)
637 if(!$a_build_full_period)
639 $sql =
"SELECT ts_day, ".sprintf($a_aggr_value, $a_field).
" ".$a_field.
642 " SELECT ts_day, ".sprintf($a_aggr_sub, $a_field).
" ".$a_field.
644 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
645 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
646 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
647 " AND ".$a_field.
" > ".
$ilDB->quote(0,
"integer").
648 " AND ".$a_field.
" IS NOT NULL";
651 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
653 $sql .=
" GROUP BY ts_day, ".$a_aggr_by.
657 $set =
$ilDB->query($sql);
665 $tmp = $all_aggr_ids = $deleted_in_period = $first_day_in_period = array();
667 if($a_table !=
"wiki_stat_page")
669 echo
"can only build full period averages for wiki_stat_page";
676 " SELECT ".$a_aggr_by.
", MAX(deleted) deleted, MAX(ts_day) last_day, MIN(ts_day) first_day".
678 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
679 " GROUP BY ".$a_aggr_by.
681 " WHERE first_day <= ".$ilDB->quote($a_day_to,
"text").
682 " AND (last_day >= ".$ilDB->quote($a_day_from,
"text").
683 " OR deleted = ".$ilDB->quote(0,
"integer").
")";
684 $set =
$ilDB->query($sql);
687 $all_aggr_ids[] =
$row[$a_aggr_by];
690 if(
$row[
"deleted"] &&
$row[
"last_day"] < $a_day_to)
692 $deleted_in_period[
$row[$a_aggr_by]] =
$row[
"last_day"];
695 if(
$row[
"first_day"] > $a_day_from)
697 $first_day_in_period[
$row[$a_aggr_by]] =
$row[
"first_day"];
702 $sql =
" SELECT ts_day, ".$a_aggr_by.
", ".sprintf($a_aggr_sub, $a_field).
" ".$a_field.
704 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
705 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
706 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text");
707 $sql .=
" GROUP BY ts_day, ".$a_aggr_by;
708 $set =
$ilDB->query($sql);
711 if(!in_array(
$row[$a_aggr_by], $all_aggr_ids))
713 var_dump(
"unexpected wiki_stat_page_entry",
$row);
715 $tmp[
$row[$a_aggr_by]][
$row[
"ts_day"]] =
$row[$a_field];
719 foreach($all_aggr_ids as $aggr_by_id)
722 if(!is_array($tmp[$aggr_by_id]))
724 $tmp[$aggr_by_id] = array();
728 $last_before_period =
null;
729 if(!$tmp[$aggr_by_id][$a_day_from])
731 $last_before_period =
self::getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_aggr_by, $aggr_by_id);
735 $first_period_day = isset($first_day_in_period[$aggr_by_id])
736 ? $first_day_in_period[$aggr_by_id]
740 $last_period_day = isset($deleted_in_period[$aggr_by_id])
741 ? $deleted_in_period[$aggr_by_id]
748 foreach($tmp[$aggr_by_id] as $day => $value)
750 $res[$day][$aggr_by_id] = $value;
755 foreach(
$res as $day => $values)
757 switch($a_aggr_value)
760 $res[$day] = array_sum($values)/
sizeof($values);
764 $res[$day] = array_sum($values);
768 var_dump(
"unsupport aggr ".$a_aggr_value);
777 protected static function buildFullPeriodData(array &$a_res, $a_day_from, $a_day_to, $a_last_before_period, $a_allow_zero =
false)
782 $today = date(
"Y-m-d");
783 $current = explode(
"-", $a_day_from);
784 $current = date(
"Y-m-d", mktime(0, 0, 1, $current[1], $current[2], $current[0]));
785 while($current <= $a_day_to &&
788 if(!isset($a_res[$current]))
790 if($current <= $today)
795 $a_res[$current] = $last;
798 else if($a_last_before_period || $a_allow_zero)
800 $a_res[$current] = $a_last_before_period;
806 $last = $a_res[$current];
809 $current = explode(
"-", $current);
810 $current = date(
"Y-m-d", mktime(0, 0, 1, $current[1], $current[2]+1, $current[0]));
821 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat",
"num_pages",
"MAX(%s)",
null,
null,
true);
826 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_user",
"new_pages",
"SUM(%s)");
831 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_user",
"new_pages",
"user_id",
"AVG(%s)",
"SUM(%s)");
836 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat",
"del_pages",
"SUM(%s)");
841 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"read_events",
"SUM(%s)");
850 $sql =
"SELECT ts_day, COUNT(DISTINCT(page_id)) num_changed_pages".
851 " FROM wiki_stat_page_user".
852 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
853 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
854 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
855 " AND changes > ".$ilDB->quote(0,
"integer").
856 " AND changes IS NOT NULL".
859 $set =
$ilDB->query($sql);
874 $sql =
"SELECT ts_day, AVG(num_changed_pages) num_changed_pages".
877 " SELECT ts_day, COUNT(DISTINCT(page_id)) num_changed_pages".
878 " FROM wiki_stat_page_user".
879 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
880 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
881 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
882 " AND changes > ".$ilDB->quote(0,
"integer").
883 " AND changes IS NOT NULL".
884 " GROUP BY ts_day, user_id".
888 $set =
$ilDB->query($sql);
897 protected static function getWikiUserEditPages($a_wiki_id, $a_day_from, $a_day_to, $a_sub_field =
null, $a_sub_id =
null)
903 $sql =
"SELECT ts_day, COUNT(DISTINCT(user_id)) num_changed_users".
904 " FROM wiki_stat_page_user".
905 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
906 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
907 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
908 " AND changes > ".$ilDB->quote(0,
"integer").
909 " AND changes IS NOT NULL";
912 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
914 $sql .=
" GROUP BY ts_day".
916 $set =
$ilDB->query($sql);
931 $sql =
"SELECT ts_day, AVG(num_changed_users) num_changed_users".
934 " SELECT ts_day, COUNT(DISTINCT(user_id)) num_changed_users".
935 " FROM wiki_stat_page_user".
936 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
937 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
938 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
939 " AND changes > ".$ilDB->quote(0,
"integer").
940 " AND changes IS NOT NULL".
941 " GROUP BY ts_day, page_id".
945 $set =
$ilDB->query($sql);
956 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"SUM(%s)");
961 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"page_id",
"AVG(%s)",
"SUM(%s)");
968 foreach(array_keys(
$res) as $day)
979 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"int_links",
"page_id",
"SUM(%s)",
"MAX(%s)",
null,
null,
true);
984 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"int_links",
"page_id",
"AVG(%s)",
"MAX(%s)",
null,
null,
true);
989 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"ext_links",
"page_id",
"SUM(%s)",
"MAX(%s)",
null,
null,
true);
994 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"ext_links",
"page_id",
"AVG(%s)",
"MAX(%s)",
null,
null,
true);
997 protected static function getWikiWords($a_wiki_id, $a_day_from, $a_day_to)
999 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_words",
"page_id",
"SUM(%s)",
"MAX(%s)",
null,
null,
true);
1004 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_words",
"page_id",
"AVG(%s)",
"MAX(%s)",
null,
null,
true);
1009 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_chars",
"page_id",
"SUM(%s)",
"MAX(%s)",
null,
null,
true);
1014 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_chars",
"page_id",
"AVG(%s)",
"MAX(%s)",
null,
null,
true);
1019 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"footnotes",
"page_id",
"SUM(%s)",
"MAX(%s)",
null,
null,
true);
1024 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"footnotes",
"page_id",
"AVG(%s)",
"MAX(%s)",
null,
null,
true);
1034 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"changes",
"SUM(%s)",
"page_id", $a_page_id);
1039 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"changes",
"user_id",
"AVG(%s)",
"SUM(%s)",
"page_id", $a_page_id);
1049 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"read_events",
"SUM(%s)",
"page_id", $a_page_id);
1054 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"int_links",
"MAX(%s)",
"page_id", $a_page_id,
true);
1059 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"ext_links",
"MAX(%s)",
"page_id", $a_page_id,
true);
1064 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_words",
"MAX(%s)",
"page_id", $a_page_id,
true);
1069 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_chars",
"MAX(%s)",
"page_id", $a_page_id,
true);
1074 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"footnotes",
"MAX(%s)",
"page_id", $a_page_id,
true);
1079 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"SUM(%s)",
"page_id", $a_page_id);
1094 $set =
$ilDB->query(
"SELECT DISTINCT(SUBSTR(ts_day, 1, 7)) month".
1095 " FROM wiki_stat_page_user".
1096 " WHERE wiki_id = ".
$ilDB->quote($a_wiki_id,
"integer").
1097 " AND ts_day IS NOT NULL");
1109 self::KEY_FIGURE_WIKI_NUM_PAGES
1110 ,self::KEY_FIGURE_WIKI_NEW_PAGES
1111 ,self::KEY_FIGURE_WIKI_NEW_PAGES_AVG
1112 ,self::KEY_FIGURE_WIKI_EDIT_PAGES
1113 ,self::KEY_FIGURE_WIKI_EDIT_PAGES_AVG
1114 ,self::KEY_FIGURE_WIKI_DELETED_PAGES
1115 ,self::KEY_FIGURE_WIKI_READ_PAGES
1116 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES
1117 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES_AVG
1118 ,self::KEY_FIGURE_WIKI_NUM_RATING
1119 ,self::KEY_FIGURE_WIKI_NUM_RATING_AVG
1120 ,self::KEY_FIGURE_WIKI_RATING_AVG
1121 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS
1122 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS_AVG
1123 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS
1124 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS_AVG
1125 ,self::KEY_FIGURE_WIKI_WORDS
1126 ,self::KEY_FIGURE_WIKI_WORDS_AVG
1127 ,self::KEY_FIGURE_WIKI_CHARS
1128 ,self::KEY_FIGURE_WIKI_CHARS_AVG
1129 ,self::KEY_FIGURE_WIKI_FOOTNOTES
1130 ,self::KEY_FIGURE_WIKI_FOOTNOTES_AVG
1137 self::KEY_FIGURE_WIKI_PAGE_CHANGES
1138 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES_AVG
1139 ,self::KEY_FIGURE_WIKI_PAGE_USER_EDIT
1140 ,self::KEY_FIGURE_WIKI_PAGE_READ
1141 ,self::KEY_FIGURE_WIKI_PAGE_INTERNAL_LINKS
1142 ,self::KEY_FIGURE_WIKI_PAGE_EXTERNAL_LINKS
1143 ,self::KEY_FIGURE_WIKI_PAGE_WORDS
1144 ,self::KEY_FIGURE_WIKI_PAGE_CHARS
1145 ,self::KEY_FIGURE_WIKI_PAGE_FOOTNOTES
1146 ,self::KEY_FIGURE_WIKI_PAGE_RATINGS
1156 self::KEY_FIGURE_WIKI_NUM_PAGES =>
$lng->txt(
"wiki_stat_num_pages")
1157 ,self::KEY_FIGURE_WIKI_NEW_PAGES =>
$lng->txt(
"wiki_stat_new_pages")
1158 ,self::KEY_FIGURE_WIKI_NEW_PAGES_AVG =>
$lng->txt(
"wiki_stat_new_pages_avg")
1159 ,self::KEY_FIGURE_WIKI_EDIT_PAGES =>
$lng->txt(
"wiki_stat_edit_pages")
1160 ,self::KEY_FIGURE_WIKI_EDIT_PAGES_AVG =>
$lng->txt(
"wiki_stat_edit_pages_avg")
1161 ,self::KEY_FIGURE_WIKI_DELETED_PAGES =>
$lng->txt(
"wiki_stat_deleted_pages")
1162 ,self::KEY_FIGURE_WIKI_READ_PAGES =>
$lng->txt(
"wiki_stat_read_pages")
1163 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES =>
$lng->txt(
"wiki_stat_user_edit_pages")
1164 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES_AVG =>
$lng->txt(
"wiki_stat_user_edit_pages_avg")
1165 ,self::KEY_FIGURE_WIKI_NUM_RATING =>
$lng->txt(
"wiki_stat_num_rating")
1166 ,self::KEY_FIGURE_WIKI_NUM_RATING_AVG =>
$lng->txt(
"wiki_stat_num_rating_avg")
1167 ,self::KEY_FIGURE_WIKI_RATING_AVG =>
$lng->txt(
"wiki_stat_rating_avg")
1168 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS =>
$lng->txt(
"wiki_stat_internal_links")
1169 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS_AVG =>
$lng->txt(
"wiki_stat_internal_links_avg")
1170 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS =>
$lng->txt(
"wiki_stat_external_links")
1171 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS_AVG =>
$lng->txt(
"wiki_stat_external_links_avg")
1172 ,self::KEY_FIGURE_WIKI_WORDS =>
$lng->txt(
"wiki_stat_words")
1173 ,self::KEY_FIGURE_WIKI_WORDS_AVG =>
$lng->txt(
"wiki_stat_words_avg")
1174 ,self::KEY_FIGURE_WIKI_CHARS =>
$lng->txt(
"wiki_stat_chars")
1175 ,self::KEY_FIGURE_WIKI_CHARS_AVG =>
$lng->txt(
"wiki_stat_chars_avg")
1176 ,self::KEY_FIGURE_WIKI_FOOTNOTES =>
$lng->txt(
"wiki_stat_footnotes")
1177 ,self::KEY_FIGURE_WIKI_FOOTNOTES_AVG =>
$lng->txt(
"wiki_stat_footnotes_avg")
1179 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES =>
$lng->txt(
"wiki_stat_page_changes")
1180 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES_AVG =>
$lng->txt(
"wiki_stat_page_changes_avg")
1181 ,self::KEY_FIGURE_WIKI_PAGE_USER_EDIT =>
$lng->txt(
"wiki_stat_page_user_edit")
1182 ,self::KEY_FIGURE_WIKI_PAGE_READ =>
$lng->txt(
"wiki_stat_page_read")
1183 ,self::KEY_FIGURE_WIKI_PAGE_INTERNAL_LINKS =>
$lng->txt(
"wiki_stat_page_internal_links")
1184 ,self::KEY_FIGURE_WIKI_PAGE_EXTERNAL_LINKS =>
$lng->txt(
"wiki_stat_page_external_links")
1185 ,self::KEY_FIGURE_WIKI_PAGE_WORDS =>
$lng->txt(
"wiki_stat_page_words")
1186 ,self::KEY_FIGURE_WIKI_PAGE_CHARS =>
$lng->txt(
"wiki_stat_page_characters")
1187 ,self::KEY_FIGURE_WIKI_PAGE_FOOTNOTES =>
$lng->txt(
"wiki_stat_page_footnotes")
1188 ,self::KEY_FIGURE_WIKI_PAGE_RATINGS =>
$lng->txt(
"wiki_stat_page_ratings")
1191 return $map[$a_figure];
1306 foreach(self::getFigures() as $figure)
1318 foreach(self::getFiguresPage() as $figure)
static getOverallRatingForObject($a_obj_id, $a_obj_type, $a_sub_obj_id=null, $a_sub_obj_type=null, $a_category_id=null)
Get overall rating for an object.
static getAllPages($a_wiki_id)
Get all pages of wiki
getWikiId()
Get Wiki Object Id.
static buildFullPeriodData(array &$a_res, $a_day_from, $a_day_to, $a_last_before_period, $a_allow_zero=false)
static writeData($a_table, array $a_primary, array $a_values)
Write data to DB.
static getWikiInternalLinksAvg($a_wiki_id, $a_day_from, $a_day_to)
static writeStat($a_wiki_id, $a_values)
Write data to wiki_stat.
static writeStatPage($a_wiki_id, $a_page_id, $a_values)
Write data to wiki_stat_page.
const KEY_FIGURE_WIKI_NUM_RATING_AVG
const KEY_FIGURE_WIKI_PAGE_READ
static getWikiUserEditPagesAvg($a_wiki_id, $a_day_from, $a_day_to)
static getWikiWordsAvg($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_NUM_RATING
const KEY_FIGURE_WIKI_DELETED_PAGES
static handlePageUpdated(ilWikiPage $a_page_obj, $a_user_id, array $a_page_data=null)
Handle wiki page update.
static getWikiDeletedPages($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageWords($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static countPages($a_wiki_id)
Count pages in wiki.
static writeStatPageUser($a_wiki_id, $a_page_id, $a_user_id, $a_values)
Write data to wiki_stat_page_user.
const KEY_FIGURE_WIKI_WORDS
static getWikiExternalLinks($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_PAGE_EXTERNAL_LINKS
static writeStatUser($a_wiki_id, $a_user_id, $a_values)
Write to wiki_stat_user.
static getWikiNumRatingAvg($a_wiki_id, $a_day_from, $a_day_to)
static getWikiReadPages($a_wiki_id, $a_day_from, $a_day_to)
static getFigureDataPage($a_wiki_id, $a_page_id, $a_figure, $a_from, $a_to)
const KEY_FIGURE_WIKI_INTERNAL_LINKS
static getWikiPageInternalLinks($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static getWikiNewPagesSum($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageRatings($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static getWikiEditPagesAvg($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_PAGE_RATINGS
static getAvailableMonths($a_wiki_id)
const KEY_FIGURE_WIKI_WORDS_AVG
static getFigureData($a_wiki_id, $a_figure, $a_from, $a_to)
const KEY_FIGURE_WIKI_READ_PAGES
static getWikiPageChangesAvg($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static getWikiNewPagesAvg($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageChanges($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_NEW_PAGES
const KEY_FIGURE_WIKI_EDIT_PAGES
static getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to, $a_table, $a_field, $a_aggr_by, $a_aggr_value, $a_aggr_sub, $a_sub_field=null, $a_sub_id=null, $a_build_full_period=false)
static getFigureTitle($a_figure)
const KEY_FIGURE_WIKI_EXTERNAL_LINKS_AVG
static getWikiInternalLinks($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageCharacters($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_PAGE_CHANGES
const KEY_FIGURE_WIKI_INTERNAL_LINKS_AVG
static getWikiWords($a_wiki_id, $a_day_from, $a_day_to)
static getWikiEditPagesSum($a_wiki_id, $a_day_from, $a_day_to)
static getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_sub_field=null, $a_sub_id=null)
static handlePageDeletion(ilWikiPage $a_page_obj, $a_user_id)
Handle wiki page deletion.
static getFigureOptionsPage()
static getWikiCharactersAvg($a_wiki_id, $a_day_from, $a_day_to)
static handlePageCreated(ilWikiPage $a_page_obj, $a_user_id)
Handle wiki page creation.
static getWikiAggr($a_wiki_id, $a_day_from, $a_day_to, $a_table, $a_field, $a_aggr_value, $a_sub_field=null, $a_sub_id=null, $a_build_full_period=false)
static getWikiUserEditPages($a_wiki_id, $a_day_from, $a_day_to, $a_sub_field=null, $a_sub_id=null)
const KEY_FIGURE_WIKI_PAGE_INTERNAL_LINKS
const KEY_FIGURE_WIKI_FOOTNOTES
static getWikiPageUserEdit($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_PAGE_USER_EDIT
static getFigureOptions()
const KEY_FIGURE_WIKI_PAGE_CHANGES_AVG
static getAverageRating($a_wiki_id, $a_page_id=null)
Get average rating for wiki or wiki page.
static getWikiExternalLinksAvg($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_FOOTNOTES_AVG
const KEY_FIGURE_WIKI_EXTERNAL_LINKS
static getTimestamp()
Get current time frame (hourly)
const KEY_FIGURE_WIKI_PAGE_FOOTNOTES
const KEY_FIGURE_WIKI_CHARS_AVG
static getWikiNumPages($a_wiki_id, $a_day_from, $a_day_to)
static handleEvent($a_event, ilWikiPage $a_page_obj, $a_user_id=null, array $a_additional_data=null)
Handle wiki page event.
static getWikiRatingAvg($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_PAGE_CHARS
const KEY_FIGURE_WIKI_USER_EDIT_PAGES
const KEY_FIGURE_WIKI_NUM_PAGES
const KEY_FIGURE_WIKI_CHARS
const KEY_FIGURE_WIKI_PAGE_WORDS
const KEY_FIGURE_WIKI_USER_EDIT_PAGES_AVG
static getWikiFootnotesAvg($a_wiki_id, $a_day_from, $a_day_to)
const KEY_FIGURE_WIKI_NEW_PAGES_AVG
const KEY_FIGURE_WIKI_RATING_AVG
static getWikiFootnotes($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageRead($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static handlePageRead(ilWikiPage $a_page_obj, $a_user_id)
Handle wiki page read.
static getWikiCharacters($a_wiki_id, $a_day_from, $a_day_to)
static getWikiNumRating($a_wiki_id, $a_day_from, $a_day_to)
static getWikiPageExternalLinks($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)
static handlePageRating(ilWikiPage $a_page_obj, $a_user_id)
Handle wiki page rating.
const KEY_FIGURE_WIKI_EDIT_PAGES_AVG
static getWikiPageFootnotes($a_wiki_id, $a_page_id, $a_day_from, $a_day_to)