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);
202 $ilAtomQuery =
$ilDB->buildAtomQuery();
203 $ilAtomQuery->addTableLock($a_table);
205 $ilAtomQuery->addQueryCallable(
206 function(
ilDBInterface $ilDB) use($a_table, $a_primary, $a_values, $tstamp, &$is_update){
209 foreach($a_primary as
$column => $value)
211 $primary[] =
$column.
" = ".
$ilDB->quote($value[1], $value[0]);
213 $primary = implode(
" AND ", $primary);
215 $set =
$ilDB->query(
"SELECT ts FROM ".$a_table.
218 $is_update = (bool)
$ilDB->numRows($set);
224 foreach($a_values as
$column => $value)
226 if($value[0] ==
"increment")
230 else if($value[0] ==
"decrement")
236 $values[] =
$column.
" = ".
$ilDB->quote($value[1], $value[0]);
239 $values = implode(
", ", $values);
241 $sql =
"UPDATE ".$a_table.
248 $a_values = array_merge($a_primary, $a_values);
249 $a_values[
"ts_day"] = array(
"text", substr($tstamp, 0, 10));
250 $a_values[
"ts_hour"] = array(
"integer", (
int)substr($tstamp, 11, 2));
253 foreach($a_values as
$column => $value)
256 if($value[0] ==
"increment")
258 $value[0] =
"integer";
260 else if($value[0] ==
"decrement")
262 $value[0] =
"integer";
265 $values[] =
$ilDB->quote($value[1], $value[0]);
267 $values = implode(
", ", $values);
270 $sql =
"INSERT INTO ".$a_table.
272 " VALUES (".$values.
")";
274 $ilDB->manipulate($sql);
287 protected static function writeStat($a_wiki_id, $a_values)
290 "wiki_id" => array(
"integer", $a_wiki_id)
305 "wiki_id" => array(
"integer", $a_wiki_id),
306 "page_id" => array(
"integer", $a_page_id),
322 "wiki_id" => array(
"integer", $a_wiki_id),
323 "page_id" => array(
"integer", $a_page_id),
324 "user_id" => array(
"integer", $a_user_id)
339 "wiki_id" => array(
"integer", $a_wiki_id),
340 "user_id" => array(
"integer", $a_user_id)
365 include_once
"Services/Rating/classes/class.ilRating.php";
394 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId())),
395 "del_pages" => array(
"integer", 0),
396 "avg_rating" => array(
"integer", 0)
402 "new_pages" => array(
"increment", 1)
418 "changes" => array(
"increment", 1)
423 "int_links" => array(
"integer", $a_page_data[
"int_links"]),
424 "ext_links" => array(
"integer", $a_page_data[
"ext_links"]),
425 "footnotes" => array(
"integer", $a_page_data[
"footnotes"]),
426 "num_words" => array(
"integer", $a_page_data[
"num_words"]),
427 "num_chars" => array(
"integer", $a_page_data[
"num_chars"]),
428 "num_ratings" => array(
"integer", 0),
429 "avg_rating" => array(
"integer", 0)
445 "read_events" => array(
"increment", 1)
461 " FROM wiki_stat_page".
462 " WHERE wiki_id = ".$ilDB->quote($a_page_obj->
getWikiId(),
"integer").
463 " AND page_id = ".$ilDB->quote($a_page_obj->
getId(),
"integer") .
466 $set =
$ilDB->query($sql);
469 if(
$ilDB->numRows($set))
475 "int_links" => array(
"integer",
$data[
"int_links"]),
476 "ext_links" => array(
"integer",
$data[
"ext_links"]),
477 "footnotes" => array(
"integer",
$data[
"footnotes"]),
478 "num_words" => array(
"integer",
$data[
"num_words"]),
479 "num_chars" => array(
"integer",
$data[
"num_chars"]),
480 "num_ratings" => array(
"integer",
$data[
"num_ratings"]),
481 "avg_rating" => array(
"integer",
$data[
"avg_rating"]),
487 $ilDB->manipulate(
"UPDATE wiki_stat_page".
488 " SET deleted = ".
$ilDB->quote(1,
"integer").
489 " WHERE page_id = ".$ilDB->quote($a_page_obj->
getId(),
"integer").
490 " AND wiki_id = ".$ilDB->quote($a_page_obj->
getWikiId(),
"integer"));
496 "del_pages" => array(
"increment", 1),
497 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId())),
498 "avg_rating" => array(
"integer", $rating[
"avg"]*100)
516 "num_ratings" => array(
"integer", $rating[
"cnt"]),
517 "avg_rating" => array(
"integer", $rating[
"avg"]*100),
525 "avg_rating" => array(
"integer", $rating[
"avg"]*100)
533 "num_pages" => array(
"integer", self::countPages($a_page_obj->
getWikiId()))
543 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)
550 $sql =
"SELECT ts_day, ".sprintf($a_aggr_value, $a_field).
" ".$a_field;
551 if($a_table ==
"wiki_stat_page" && $a_sub_field)
553 $sql .=
", MAX(deleted) deleted";
555 $sql .=
" FROM ".$a_table.
556 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
557 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
558 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text");
559 if(!$a_build_full_period)
562 $sql .=
" AND ".$a_field.
" > ".
$ilDB->quote(0,
"integer").
563 " AND ".$a_field.
" IS NOT NULL";
567 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
569 $sql .=
" GROUP BY ts_day".
571 $set =
$ilDB->query($sql);
576 $deleted = max(
$row[
"deleted"], $deleted);
579 if($a_build_full_period)
581 $period_first = $a_day_from;
582 $period_last = $a_day_to;
585 if($a_table ==
"wiki_stat_page" && $a_sub_field && $deleted)
587 $sql =
"SELECT MAX(ts_day) last_day, MIN(ts_day) first_day".
589 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
590 " AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
591 $set =
$ilDB->query($sql);
593 $last_day =
$row[
"last_day"];
594 if($last_day < $period_last)
596 $period_last = $last_day;
598 $first_day =
$row[
"first_day"];
599 if($first_day > $period_first)
601 $period_first = $first_day;
605 $last_before_period =
null;
606 if(!
$res[$a_day_from])
608 $last_before_period =
self::getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_sub_field, $a_sub_id);
618 protected static function getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_sub_field =
null, $a_sub_id =
null)
623 $sql =
"SELECT MAX(".$a_field.
") latest".
625 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
626 " AND ts_day < ".$ilDB->quote($a_day_from,
"text");
629 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
631 $sql .=
" GROUP BY ts_day".
632 " ORDER BY ts_day DESC";
634 $set =
$ilDB->query($sql);
635 $last_before_period =
$ilDB->fetchAssoc($set);
636 return $last_before_period[
"latest"];
639 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)
645 if(!$a_build_full_period)
647 $sql =
"SELECT ts_day, ".sprintf($a_aggr_value, $a_field).
" ".$a_field.
650 " SELECT ts_day, ".sprintf($a_aggr_sub, $a_field).
" ".$a_field.
652 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
653 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
654 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
655 " AND ".$a_field.
" > ".
$ilDB->quote(0,
"integer").
656 " AND ".$a_field.
" IS NOT NULL";
659 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
661 $sql .=
" GROUP BY ts_day, ".$a_aggr_by.
665 $set =
$ilDB->query($sql);
673 $tmp = $all_aggr_ids = $deleted_in_period = $first_day_in_period = array();
675 if($a_table !=
"wiki_stat_page")
677 echo
"can only build full period averages for wiki_stat_page";
684 " SELECT ".$a_aggr_by.
", MAX(deleted) deleted, MAX(ts_day) last_day, MIN(ts_day) first_day".
686 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
687 " GROUP BY ".$a_aggr_by.
689 " WHERE first_day <= ".$ilDB->quote($a_day_to,
"text").
690 " AND (last_day >= ".$ilDB->quote($a_day_from,
"text").
691 " OR deleted = ".$ilDB->quote(0,
"integer").
")";
692 $set =
$ilDB->query($sql);
695 $all_aggr_ids[] =
$row[$a_aggr_by];
698 if(
$row[
"deleted"] &&
$row[
"last_day"] < $a_day_to)
700 $deleted_in_period[
$row[$a_aggr_by]] =
$row[
"last_day"];
703 if(
$row[
"first_day"] > $a_day_from)
705 $first_day_in_period[
$row[$a_aggr_by]] =
$row[
"first_day"];
710 $sql =
" SELECT ts_day, ".$a_aggr_by.
", ".
sprintf($a_aggr_sub, $a_field).
" ".$a_field.
712 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
713 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
714 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text");
715 $sql .=
" GROUP BY ts_day, ".$a_aggr_by;
716 $set =
$ilDB->query($sql);
719 if(!in_array(
$row[$a_aggr_by], $all_aggr_ids))
721 var_dump(
"unexpected wiki_stat_page_entry",
$row);
723 $tmp[
$row[$a_aggr_by]][
$row[
"ts_day"]] =
$row[$a_field];
727 foreach($all_aggr_ids as $aggr_by_id)
730 if(!is_array($tmp[$aggr_by_id]))
732 $tmp[$aggr_by_id] = array();
736 $last_before_period =
null;
737 if(!$tmp[$aggr_by_id][$a_day_from])
739 $last_before_period =
self::getWikiLast($a_wiki_id, $a_day_from, $a_table, $a_field, $a_aggr_by, $aggr_by_id);
743 $first_period_day = isset($first_day_in_period[$aggr_by_id])
744 ? $first_day_in_period[$aggr_by_id]
748 $last_period_day = isset($deleted_in_period[$aggr_by_id])
749 ? $deleted_in_period[$aggr_by_id]
756 foreach($tmp[$aggr_by_id] as $day => $value)
758 $res[$day][$aggr_by_id] = $value;
763 foreach(
$res as $day => $values)
765 switch($a_aggr_value)
768 $res[$day] = array_sum($values)/
sizeof($values);
772 $res[$day] = array_sum($values);
776 var_dump(
"unsupport aggr ".$a_aggr_value);
785 protected static function buildFullPeriodData(array &$a_res, $a_day_from, $a_day_to, $a_last_before_period, $a_allow_zero =
false)
790 $today =
date(
"Y-m-d");
791 $current = explode(
"-", $a_day_from);
792 $current =
date(
"Y-m-d", mktime(0, 0, 1, $current[1], $current[2], $current[0]));
793 while($current <= $a_day_to &&
796 if(!isset($a_res[$current]))
798 if($current <= $today)
803 $a_res[$current] = $last;
806 else if($a_last_before_period || $a_allow_zero)
808 $a_res[$current] = $a_last_before_period;
814 $last = $a_res[$current];
817 $current = explode(
"-", $current);
818 $current =
date(
"Y-m-d", mktime(0, 0, 1, $current[1], $current[2]+1, $current[0]));
829 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat",
"num_pages",
"MAX(%s)",
null,
null,
true);
834 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_user",
"new_pages",
"SUM(%s)");
839 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_user",
"new_pages",
"user_id",
"AVG(%s)",
"SUM(%s)");
844 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat",
"del_pages",
"SUM(%s)");
849 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"read_events",
"SUM(%s)");
858 $sql =
"SELECT ts_day, COUNT(DISTINCT(page_id)) num_changed_pages".
859 " FROM wiki_stat_page_user".
860 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
861 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
862 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
863 " AND changes > ".$ilDB->quote(0,
"integer").
864 " AND changes IS NOT NULL".
867 $set =
$ilDB->query($sql);
882 $sql =
"SELECT ts_day, AVG(num_changed_pages) num_changed_pages".
885 " SELECT ts_day, COUNT(DISTINCT(page_id)) num_changed_pages".
886 " FROM wiki_stat_page_user".
887 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
888 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
889 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
890 " AND changes > ".$ilDB->quote(0,
"integer").
891 " AND changes IS NOT NULL".
892 " GROUP BY ts_day, user_id".
896 $set =
$ilDB->query($sql);
905 protected static function getWikiUserEditPages($a_wiki_id, $a_day_from, $a_day_to, $a_sub_field =
null, $a_sub_id =
null)
911 $sql =
"SELECT ts_day, COUNT(DISTINCT(user_id)) num_changed_users".
912 " FROM wiki_stat_page_user".
913 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
914 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
915 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
916 " AND changes > ".$ilDB->quote(0,
"integer").
917 " AND changes IS NOT NULL";
920 $sql .=
" AND ".$a_sub_field.
" = ".
$ilDB->quote($a_sub_id,
"integer");
922 $sql .=
" GROUP BY ts_day".
924 $set =
$ilDB->query($sql);
939 $sql =
"SELECT ts_day, AVG(num_changed_users) num_changed_users".
942 " SELECT ts_day, COUNT(DISTINCT(user_id)) num_changed_users".
943 " FROM wiki_stat_page_user".
944 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
945 " AND ts_day >= ".$ilDB->quote($a_day_from,
"text").
946 " AND ts_day <= ".$ilDB->quote($a_day_to,
"text").
947 " AND changes > ".$ilDB->quote(0,
"integer").
948 " AND changes IS NOT NULL".
949 " GROUP BY ts_day, page_id".
953 $set =
$ilDB->query($sql);
964 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"SUM(%s)");
969 return self::getWikiAggrSub($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"page_id",
"AVG(%s)",
"SUM(%s)");
976 foreach(array_keys(
$res) as $day)
987 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);
992 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);
997 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);
1002 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);
1007 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);
1012 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);
1017 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);
1022 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);
1027 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);
1032 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);
1042 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page_user",
"changes",
"SUM(%s)",
"page_id", $a_page_id);
1047 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);
1057 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);
1062 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);
1067 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);
1072 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);
1077 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);
1082 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"footnotes",
"MAX(%s)",
"page_id", $a_page_id,
true);
1087 return self::getWikiAggr($a_wiki_id, $a_day_from, $a_day_to,
"wiki_stat_page",
"num_ratings",
"SUM(%s)",
"page_id", $a_page_id);
1102 $set =
$ilDB->query(
"SELECT DISTINCT(SUBSTR(ts_day, 1, 7)) ".
$ilDB->quoteIdentifier(
"month").
1103 " FROM wiki_stat_page_user".
1104 " WHERE wiki_id = ".$ilDB->quote($a_wiki_id,
"integer").
1105 " AND ts_day IS NOT NULL");
1117 self::KEY_FIGURE_WIKI_NUM_PAGES
1118 ,self::KEY_FIGURE_WIKI_NEW_PAGES
1119 ,self::KEY_FIGURE_WIKI_NEW_PAGES_AVG
1120 ,self::KEY_FIGURE_WIKI_EDIT_PAGES
1121 ,self::KEY_FIGURE_WIKI_EDIT_PAGES_AVG
1122 ,self::KEY_FIGURE_WIKI_DELETED_PAGES
1123 ,self::KEY_FIGURE_WIKI_READ_PAGES
1124 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES
1125 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES_AVG
1126 ,self::KEY_FIGURE_WIKI_NUM_RATING
1127 ,self::KEY_FIGURE_WIKI_NUM_RATING_AVG
1128 ,self::KEY_FIGURE_WIKI_RATING_AVG
1129 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS
1130 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS_AVG
1131 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS
1132 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS_AVG
1133 ,self::KEY_FIGURE_WIKI_WORDS
1134 ,self::KEY_FIGURE_WIKI_WORDS_AVG
1135 ,self::KEY_FIGURE_WIKI_CHARS
1136 ,self::KEY_FIGURE_WIKI_CHARS_AVG
1137 ,self::KEY_FIGURE_WIKI_FOOTNOTES
1138 ,self::KEY_FIGURE_WIKI_FOOTNOTES_AVG
1145 self::KEY_FIGURE_WIKI_PAGE_CHANGES
1146 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES_AVG
1147 ,self::KEY_FIGURE_WIKI_PAGE_USER_EDIT
1148 ,self::KEY_FIGURE_WIKI_PAGE_READ
1149 ,self::KEY_FIGURE_WIKI_PAGE_INTERNAL_LINKS
1150 ,self::KEY_FIGURE_WIKI_PAGE_EXTERNAL_LINKS
1151 ,self::KEY_FIGURE_WIKI_PAGE_WORDS
1152 ,self::KEY_FIGURE_WIKI_PAGE_CHARS
1153 ,self::KEY_FIGURE_WIKI_PAGE_FOOTNOTES
1154 ,self::KEY_FIGURE_WIKI_PAGE_RATINGS
1164 self::KEY_FIGURE_WIKI_NUM_PAGES =>
$lng->txt(
"wiki_stat_num_pages")
1165 ,self::KEY_FIGURE_WIKI_NEW_PAGES =>
$lng->txt(
"wiki_stat_new_pages")
1166 ,self::KEY_FIGURE_WIKI_NEW_PAGES_AVG =>
$lng->txt(
"wiki_stat_new_pages_avg")
1167 ,self::KEY_FIGURE_WIKI_EDIT_PAGES =>
$lng->txt(
"wiki_stat_edit_pages")
1168 ,self::KEY_FIGURE_WIKI_EDIT_PAGES_AVG =>
$lng->txt(
"wiki_stat_edit_pages_avg")
1169 ,self::KEY_FIGURE_WIKI_DELETED_PAGES =>
$lng->txt(
"wiki_stat_deleted_pages")
1170 ,self::KEY_FIGURE_WIKI_READ_PAGES =>
$lng->txt(
"wiki_stat_read_pages")
1171 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES =>
$lng->txt(
"wiki_stat_user_edit_pages")
1172 ,self::KEY_FIGURE_WIKI_USER_EDIT_PAGES_AVG =>
$lng->txt(
"wiki_stat_user_edit_pages_avg")
1173 ,self::KEY_FIGURE_WIKI_NUM_RATING =>
$lng->txt(
"wiki_stat_num_rating")
1174 ,self::KEY_FIGURE_WIKI_NUM_RATING_AVG =>
$lng->txt(
"wiki_stat_num_rating_avg")
1175 ,self::KEY_FIGURE_WIKI_RATING_AVG =>
$lng->txt(
"wiki_stat_rating_avg")
1176 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS =>
$lng->txt(
"wiki_stat_internal_links")
1177 ,self::KEY_FIGURE_WIKI_INTERNAL_LINKS_AVG =>
$lng->txt(
"wiki_stat_internal_links_avg")
1178 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS =>
$lng->txt(
"wiki_stat_external_links")
1179 ,self::KEY_FIGURE_WIKI_EXTERNAL_LINKS_AVG =>
$lng->txt(
"wiki_stat_external_links_avg")
1180 ,self::KEY_FIGURE_WIKI_WORDS =>
$lng->txt(
"wiki_stat_words")
1181 ,self::KEY_FIGURE_WIKI_WORDS_AVG =>
$lng->txt(
"wiki_stat_words_avg")
1182 ,self::KEY_FIGURE_WIKI_CHARS =>
$lng->txt(
"wiki_stat_chars")
1183 ,self::KEY_FIGURE_WIKI_CHARS_AVG =>
$lng->txt(
"wiki_stat_chars_avg")
1184 ,self::KEY_FIGURE_WIKI_FOOTNOTES =>
$lng->txt(
"wiki_stat_footnotes")
1185 ,self::KEY_FIGURE_WIKI_FOOTNOTES_AVG =>
$lng->txt(
"wiki_stat_footnotes_avg")
1187 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES =>
$lng->txt(
"wiki_stat_page_changes")
1188 ,self::KEY_FIGURE_WIKI_PAGE_CHANGES_AVG =>
$lng->txt(
"wiki_stat_page_changes_avg")
1189 ,self::KEY_FIGURE_WIKI_PAGE_USER_EDIT =>
$lng->txt(
"wiki_stat_page_user_edit")
1190 ,self::KEY_FIGURE_WIKI_PAGE_READ =>
$lng->txt(
"wiki_stat_page_read")
1191 ,self::KEY_FIGURE_WIKI_PAGE_INTERNAL_LINKS =>
$lng->txt(
"wiki_stat_page_internal_links")
1192 ,self::KEY_FIGURE_WIKI_PAGE_EXTERNAL_LINKS =>
$lng->txt(
"wiki_stat_page_external_links")
1193 ,self::KEY_FIGURE_WIKI_PAGE_WORDS =>
$lng->txt(
"wiki_stat_page_words")
1194 ,self::KEY_FIGURE_WIKI_PAGE_CHARS =>
$lng->txt(
"wiki_stat_page_characters")
1195 ,self::KEY_FIGURE_WIKI_PAGE_FOOTNOTES =>
$lng->txt(
"wiki_stat_page_footnotes")
1196 ,self::KEY_FIGURE_WIKI_PAGE_RATINGS =>
$lng->txt(
"wiki_stat_page_ratings")
1199 return $map[$a_figure];
1314 foreach(self::getFigures() as $figure)
1326 foreach(self::getFiguresPage() as $figure)
sprintf('%.4f', $callTime)
date( 'd-M-Y', $objPHPExcel->getProperties() ->getCreated())
An exception for terminatinating execution or to throw for unit testing.
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 getAllWikiPages($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)