5 include_once
"Services/Cron/classes/class.ilCronJob.php";
19 return "lp_object_statistics";
28 $lng->loadLanguageModule(
"trac");
29 return $lng->txt(
"trac_object_statistics");
38 $lng->loadLanguageModule(
"trac");
39 return $lng->txt(
"trac_object_statistics_info");
44 return self::SCHEDULE_TYPE_DAILY;
66 $this->date = strtotime(
"yesterday");
99 $logger =
$GLOBALS[
'DIC']->logger()->trac();
107 $trashed_objects =
$tree->getSavedNodeObjIds($all_courses);
109 include_once
'Services/Object/classes/class.ilObjectLP.php';
110 include_once
"Modules/Course/classes/class.ilCourseParticipants.php";
111 include_once
"Services/Tracking/classes/class.ilLPStatusWrapper.php";
112 foreach ($all_courses as $crs_id) {
114 if (!in_array($crs_id, $trashed_objects)) {
117 $logger->warning(
'Found course without reference: obj_id = ' . $crs_id);
123 if (!$olp->isActive()) {
128 $ilDB->manipulate(
"DELETE FROM obj_lp_stat WHERE" .
129 " obj_id = " .
$ilDB->quote($crs_id,
"integer") .
130 " AND fulldate = " .
$ilDB->quote(date(
"Ymd", $this->date),
"integer"));
133 $members = $members->getMembers();
140 $not_attempted = count($members) - $in_progress - $completed -
$failed;
143 "type" => array(
"text",
"crs"),
144 "obj_id" => array(
"integer", $crs_id),
145 "yyyy" => array(
"integer", date(
"Y", $this->date)),
146 "mm" => array(
"integer", date(
"m", $this->date)),
147 "dd" => array(
"integer", date(
"d", $this->date)),
148 "fulldate" => array(
"integer", date(
"Ymd", $this->date)),
149 "mem_cnt" => array(
"integer", count($members)),
150 "in_progress" => array(
"integer", $in_progress),
151 "completed" => array(
"integer", $completed),
152 "failed" => array(
"integer", $failed),
153 "not_attempted" => array(
"integer", $not_attempted)
156 $ilDB->insert(
"obj_lp_stat", $set);
173 $ilDB = $DIC[
'ilDB'];
177 include_once
"Services/Tracking/classes/class.ilTrQuery.php";
181 $ilDB->manipulate(
"DELETE FROM obj_type_stat WHERE" .
183 " AND fulldate = " .
$ilDB->quote(date(
"Ymd", $this->date),
"integer"));
186 "type" => array(
"text",
$type),
187 "yyyy" => array(
"integer", date(
"Y", $this->date)),
188 "mm" => array(
"integer", date(
"m", $this->date)),
189 "dd" => array(
"integer", date(
"d", $this->date)),
190 "fulldate" => array(
"integer", date(
"Ymd", $this->date)),
191 "cnt_references" => array(
"integer", (
int) $item[
"references"]),
192 "cnt_objects" => array(
"integer", (
int) $item[
"objects"]),
193 "cnt_deleted" => array(
"integer", (
int) $item[
"deleted"])
196 $ilDB->insert(
"obj_type_stat", $set);
211 $ilDB = $DIC[
'ilDB'];
215 $to = mktime(23, 59, 59, date(
"m", $this->date), date(
"d", $this->date), date(
"Y", $this->date));
217 $sql =
"SELECT COUNT(DISTINCT(usr_id)) counter,obj_id FROM read_event" .
218 " WHERE last_access >= " .
$ilDB->quote($this->date,
"integer") .
219 " AND last_access <= " .
$ilDB->quote($to,
"integer") .
221 $set =
$ilDB->query($sql);
224 $ilDB->manipulate(
"DELETE FROM obj_user_stat" .
225 " WHERE fulldate = " .
$ilDB->quote(date(
"Ymd", $this->date),
"integer") .
226 " AND obj_id = " .
$ilDB->quote(
$row[
"obj_id"],
"integer"));
229 "obj_id" => array(
"integer",
$row[
"obj_id"]),
230 "yyyy" => array(
"integer", date(
"Y", $this->date)),
231 "mm" => array(
"integer", date(
"m", $this->date)),
232 "dd" => array(
"integer", date(
"d", $this->date)),
233 "fulldate" => array(
"integer", date(
"Ymd", $this->date)),
234 "counter" => array(
"integer",
$row[
"counter"])
237 $ilDB->insert(
"obj_user_stat", $iset);
Cron job application base class.
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _getObjectsByType($a_obj_type="", $a_owner="")
Get objects by type.
static _getAllReferences($a_id)
get all reference ids of object
catch(Exception $e) $message
Cron for lp object statistics.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
static ping($a_job_id)
Keep cron job alive.
Cron job result data container.
static getObjectTypeStatistics()
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
static getInstance($a_obj_id)
getDefaultScheduleValue()
gatherCourseLPData()
gather course data type $tree type $ilDB
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.