3 declare(strict_types=0);
41 $this->
logger = $DIC->logger()->trac();
42 $this->
lng = $DIC->language();
43 $this->
lng->loadLanguageModule(
"trac");
44 $this->db = $DIC->database();
45 $this->tree = $DIC->repositoryTree();
46 $this->cron_manager = $DIC->cron()->manager();
51 return "lp_object_statistics";
56 return $this->
lng->txt(
"trac_object_statistics");
61 return $this->
lng->txt(
"trac_object_statistics_info");
66 return self::SCHEDULE_TYPE_DAILY;
88 $this->date = strtotime(
"yesterday");
103 $result->setStatus($status);
119 $trashed_objects = $this->tree->getSavedNodeObjIds($all_courses);
121 foreach ($all_courses as $crs_id) {
123 if (!in_array($crs_id, $trashed_objects)) {
127 'Found course without reference: obj_id = ' . $crs_id
134 if (!$olp->isActive()) {
139 $this->db->manipulate(
140 "DELETE FROM obj_lp_stat WHERE" .
141 " obj_id = " . $this->db->quote($crs_id,
"integer") .
142 " AND fulldate = " . $this->db->quote(
143 date(
"Ymd", $this->date),
149 $members = $members->getMembers();
151 $in_progress = count(
171 $not_attempted = count(
173 ) - $in_progress - $completed - $failed;
176 "type" => array(
"text",
"crs"),
177 "obj_id" => array(
"integer", $crs_id),
178 "yyyy" => array(
"integer", date(
"Y", $this->date)),
179 "mm" => array(
"integer", date(
"m", $this->date)),
180 "dd" => array(
"integer", date(
"d", $this->date)),
181 "fulldate" => array(
"integer",
182 date(
"Ymd", $this->date)
184 "mem_cnt" => array(
"integer", count($members)),
185 "in_progress" => array(
"integer", $in_progress),
186 "completed" => array(
"integer", $completed),
187 "failed" => array(
"integer", $failed),
188 "not_attempted" => array(
"integer", $not_attempted)
191 $this->db->insert(
"obj_lp_stat", $set);
193 $this->cron_manager->ping($this->
getId());
206 $this->db->manipulate(
207 "DELETE FROM obj_type_stat WHERE" .
208 " type = " . $this->db->quote(
$type,
"text") .
209 " AND fulldate = " . $this->db->quote(
210 date(
"Ymd", $this->date),
216 "type" => array(
"text",
$type),
217 "yyyy" => array(
"integer", date(
"Y", $this->date)),
218 "mm" => array(
"integer", date(
"m", $this->date)),
219 "dd" => array(
"integer", date(
"d", $this->date)),
220 "fulldate" => array(
"integer", date(
"Ymd", $this->date)),
221 "cnt_references" => array(
"integer", (
int) $item[
"references"]),
222 "cnt_objects" => array(
"integer", (
int) $item[
"objects"]),
223 "cnt_deleted" => array(
"integer", isset($item[
"deleted"]) ? (
int) $item[
"deleted"] : 0)
226 $this->db->insert(
"obj_type_stat", $set);
229 $this->cron_manager->ping($this->
getId());
241 date(
"m", $this->date),
242 date(
"d", $this->date),
243 date(
"Y", $this->date)
246 $sql =
"SELECT COUNT(DISTINCT(usr_id)) counter,obj_id FROM read_event" .
247 " WHERE last_access >= " . $this->db->quote(
251 " AND last_access <= " . $this->db->quote($to,
"integer") .
253 $set = $this->db->query($sql);
254 while ($row = $this->db->fetchAssoc($set)) {
256 $this->db->manipulate(
257 "DELETE FROM obj_user_stat" .
258 " WHERE fulldate = " . $this->db->quote(
259 date(
"Ymd", $this->date),
262 " AND obj_id = " . $this->db->quote($row[
"obj_id"],
"integer")
266 "obj_id" => array(
"integer", $row[
"obj_id"]),
267 "yyyy" => array(
"integer", date(
"Y", $this->date)),
268 "mm" => array(
"integer", date(
"m", $this->date)),
269 "dd" => array(
"integer", date(
"d", $this->date)),
270 "fulldate" => array(
"integer", date(
"Ymd", $this->date)),
271 "counter" => array(
"integer", $row[
"counter"])
274 $this->db->insert(
"obj_user_stat", $iset);
277 $this->cron_manager->ping($this->
getId());
static _lookupInProgressForObject(int $a_obj_id, ?array $a_user_ids=null)
static _getAllReferences(int $id)
get all reference ids for object ID
static _getObjectsByType(string $obj_type="", int $owner=null)
static _lookupCompletedForObject(int $a_obj_id, ?array $a_user_ids=null)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ilCronManager $cron_manager
static _lookupFailedForObject(int $a_obj_id, ?array $a_user_ids=null)
static getObjectTypeStatistics()
getDefaultScheduleValue()
static getInstance(int $obj_id)
gatherCourseLPData()
gather course data