public static function getInstance() { if (!TrackingManagerRegistry::$instance) { TrackingManagerRegistry::$instance = new TrackingManagerRegistry(); } return TrackingManagerRegistry::$instance; }
} } return true; } public function deleteForUser($userId, $date = null) { if (!is_null($date) && !empty($date)) { $dateCondition = " AND `date` < FROM_UNIXTIME('" . (int) $date . "') "; } // get data to delete from exercise tracking table $sql = "SELECT `id`\n FROM `" . $this->tbl_qwz_tracking . "`\n WHERE `user_id` = " . (int) $userId . $dateCondition; $exeList = claro_sql_query_fetch_all_cols($sql); if (is_array($exeList['id']) && !empty($exeList['id'])) { // delete $sql = "DELETE FROM `" . $this->tbl_qwz_tracking . "`\n WHERE `user_id` = " . (int) $userId . $dateCondition; claro_sql_query($sql); // get data to delete $sql = "SELECT `id` FROM `" . $this->tbl_qwz_tracking_questions . "` WHERE `exercise_track_id` IN ('" . implode("', '", $exeList['id']) . "')"; $detailList = claro_sql_query_fetch_all_cols($sql); if (is_array($detailList['id']) && !empty($detailList['id'])) { $sql = "DELETE FROM `" . $this->tbl_qwz_tracking_questions . "` WHERE `exercise_track_id` IN ('" . implode("', '", $exeList['id']) . "')"; claro_sql_query($sql); $sql = "DELETE FROM `" . $this->tbl_qwz_tracking_answers . "` WHERE details_id IN ('" . implode("', '", $detailList['id']) . "')"; claro_sql_query($sql); } } return true; } } TrackingManagerRegistry::register('CLQWZ_TrackingManager');
$sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'tool_access'"; if (claro_sql_query($sql)) { return true; } else { return false; } } public function deleteBefore($date) { $sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'tool_access'\n AND `date` < FROM_UNIXTIME('" . (int) $date . "')"; if (claro_sql_query($sql)) { return true; } else { return false; } } public function deleteForUser($userId, $date = null) { if (!is_null($date) && !empty($date)) { $dateCondition = " AND `date` < FROM_UNIXTIME('" . (int) $date . "')"; } $sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'tool_access'\n AND `user_id` = " . (int) $userId . $dateCondition; if (claro_sql_query($sql)) { return true; } else { return false; } } } TrackingManagerRegistry::register('CLTRACK_ToolAccessTrackingManager');
$trackingManagerList = $trackingManagerRegistry->getManagerList(); // perform delete on each manager found foreach ($trackingManagerList as $ctr) { $manager = new $ctr(claro_get_current_course_id()); $manager->deleteBefore($beforeDate); } $dialogBox->success(get_block('All events before %date have been successfully deleted', array('%date' => claro_html_localised_date(get_locale('dateFormatLong'), $beforeDate)))); Console::log("In course " . claro_get_current_course_id() . " : tracking events before " . date('Y-m-d', $beforeDate) . " deleted by " . claro_get_current_user_id(), 'COURSE_RESET_TRACKING_BEFORE'); } else { $dialogBox->error(get_block('%date not valid', array('%date' => claro_html_localised_date(get_locale('dateFormatLong'))))); } $display = DISP_FLUSH_RESULT; } if ('exDelete' == $cmd && 'ALL' == $scope) { // load all available managers $trackingManagerRegistry = TrackingManagerRegistry::getInstance(); // get the loaded list $trackingManagerList = $trackingManagerRegistry->getManagerList(); // perform delete on each manager found foreach ($trackingManagerList as $ctr) { $manager = new $ctr(claro_get_current_course_id()); $manager->deleteAll(); } $dialogBox->success(get_lang('Course statistics are now empty')); Console::log("In course " . claro_get_current_course_id() . " : all tracking events deleted by user " . claro_get_current_user_id(), 'COURSE_RESET_ALL_TRACKING'); $display = DISP_FLUSH_RESULT; } /* * Prepare output */ $nameTools = get_lang('Delete all course statistics');
$sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'download'"; if (claro_sql_query($sql)) { return true; } else { return false; } } public function deleteBefore($date) { $sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'download'\n AND `date` < FROM_UNIXTIME('" . (int) $date . "')"; if (claro_sql_query($sql)) { return true; } else { return false; } } public function deleteForUser($userId, $date = null) { if (!is_null($date) && !empty($date)) { $dateCondition = " AND `T`.`date` < FROM_UNIXTIME('" . (int) $date . "')"; } $sql = "DELETE\n FROM `" . $this->tbl_course_tracking_event . "`\n WHERE `type` = 'download'\n AND `user_id` = " . (int) $userId . $dateCondition; if (claro_sql_query($sql)) { return true; } else { return false; } } } TrackingManagerRegistry::register('CLDOC_TrackingManager');