5include_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");
 
   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);
 
  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);
 
  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);
 
  222        while ($row = 
$ilDB->fetchAssoc($set)) {
 
  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);
 
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
An exception for terminatinating execution or to throw for unit testing.
Cron job result data container.
Cron job application base class.
const SCHEDULE_TYPE_DAILY
static ping($a_job_id)
Keep cron job alive.
Cron for lp object statistics.
gatherCourseLPData()
gather course data @global type $tree @global type $ilDB
getDefaultScheduleType()
Get schedule type.
getDescription()
Get description.
hasFlexibleSchedule()
Can the schedule be configured?
hasAutoActivation()
Is to be activated on "installation".
getDefaultScheduleValue()
Get schedule value.
static _lookupCompletedForObject($a_obj_id, $a_user_ids=null)
Get completed users for object.
static _lookupFailedForObject($a_obj_id, $a_user_ids=null)
Get failed users for object.
static _lookupInProgressForObject($a_obj_id, $a_user_ids=null)
Get in progress users for object.
static getInstance($a_obj_id)
static _getObjectsByType($a_obj_type="", $a_owner="")
Get objects by type.
static _getAllReferences($a_id)
get all reference ids of object
static getObjectTypeStatistics()