コード例 #1
0
ファイル: course.lib.php プロジェクト: feroli1000/chamilo-lms
 /**
  * Delete a course
  * This function deletes a whole course-area from the platform. When the
  * given course is a virtual course, the database and directory will not be
  * deleted.
  * When the given course is a real course, also all virtual courses refering
  * to the given course will be deleted.
  * Considering the fact that we remove all traces of the course in the main
  * database, it makes sense to remove all tracking as well (if stats databases exist)
  * so that a new course created with this code would not use the remains of an older
  * course.
  *
  * @param string The code of the course to delete
  * @todo When deleting a virtual course: unsubscribe users from that virtual
  * course from the groups in the real course if they are not subscribed in
  * that real course.
  * @todo Remove globals
  */
 public static function delete_course($code)
 {
     $table_course = Database::get_main_table(TABLE_MAIN_COURSE);
     $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $table_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
     $table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
     $table_course_survey = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY);
     $table_course_survey_question = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION);
     $table_course_survey_question_option = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION_OPTION);
     $table_course_rel_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
     $table_stats_hotpots = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
     $table_stats_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
     $table_stats_exercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
     $table_stats_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
     $table_stats_lastaccess = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
     $table_stats_course_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
     $table_stats_online = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
     $table_stats_default = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
     $table_stats_downloads = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
     $table_stats_links = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LINKS);
     $table_stats_uploads = Database::get_main_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
     $codeFiltered = Database::escape_string($code);
     $sql = "SELECT * FROM {$table_course} WHERE code='" . $codeFiltered . "'";
     $res = Database::query($sql);
     if (Database::num_rows($res) == 0) {
         return;
     }
     $sql = "SELECT * FROM {$table_course}\n                WHERE code = '" . $codeFiltered . "'";
     $res = Database::query($sql);
     $course = Database::fetch_array($res);
     $courseId = $course['id'];
     $count = 0;
     if (api_is_multiple_url_enabled()) {
         $url_id = 1;
         if (api_get_current_access_url_id() != -1) {
             $url_id = api_get_current_access_url_id();
         }
         UrlManager::delete_url_rel_course($courseId, $url_id);
         $count = UrlManager::getCountUrlRelCourse($courseId);
     }
     if ($count == 0) {
         self::create_database_dump($code);
         $course_tables = AddCourse::get_course_tables();
         // Cleaning c_x tables
         if (!empty($courseId)) {
             foreach ($course_tables as $table) {
                 $table = Database::get_course_table($table);
                 $sql = "DELETE FROM {$table} WHERE c_id = {$courseId} ";
                 Database::query($sql);
             }
         }
         $course_dir = api_get_path(SYS_COURSE_PATH) . $course['directory'];
         $archive_dir = api_get_path(SYS_ARCHIVE_PATH) . $course['directory'] . '_' . time();
         if (is_dir($course_dir)) {
             rename($course_dir, $archive_dir);
         }
         // Unsubscribe all users from the course
         $sql = "DELETE FROM {$table_course_user} WHERE c_id='" . $courseId . "'";
         Database::query($sql);
         // Delete the course from the sessions tables
         $sql = "DELETE FROM {$table_session_course} WHERE c_id='" . $courseId . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_session_course_user} WHERE c_id='" . $courseId . "'";
         Database::query($sql);
         // Delete from Course - URL
         $sql = "DELETE FROM {$table_course_rel_url} WHERE c_id = '" . $courseId . "'";
         Database::query($sql);
         $sql = 'SELECT survey_id FROM ' . $table_course_survey . ' WHERE course_code="' . $codeFiltered . '"';
         $result_surveys = Database::query($sql);
         while ($surveys = Database::fetch_array($result_surveys)) {
             $survey_id = $surveys[0];
             $sql = 'DELETE FROM ' . $table_course_survey_question . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
             $sql = 'DELETE FROM ' . $table_course_survey_question_option . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
             $sql = 'DELETE FROM ' . $table_course_survey . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
         }
         // Cleaning group categories
         $groupCategories = GroupManager::get_categories($course['code']);
         if (!empty($groupCategories)) {
             foreach ($groupCategories as $category) {
                 GroupManager::delete_category($category['id'], $course['code']);
             }
         }
         // Cleaning groups
         $groups = GroupManager::get_groups();
         if (!empty($groups)) {
             $groupList = array_column($groups, 'id');
             GroupManager::delete_groups($groupList);
         }
         // Delete the course from the stats tables
         $sql = "DELETE FROM {$table_stats_hotpots} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_attempt} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_exercises} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_access} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_lastaccess} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_course_access} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_online} WHERE c_id = {$courseId}";
         Database::query($sql);
         // Do not delete rows from track_e_default as these include course
         // creation and other important things that do not take much space
         // but give information on the course history
         //$sql = "DELETE FROM $table_stats_default WHERE c_id = $courseId";
         //Database::query($sql);
         $sql = "DELETE FROM {$table_stats_downloads} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_links} WHERE c_id = {$courseId}";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_uploads} WHERE c_id = {$courseId}";
         Database::query($sql);
         // Delete the course from the database
         $sql = "DELETE FROM {$table_course} WHERE code = '" . $codeFiltered . "'";
         Database::query($sql);
         // delete extra course fields
         $extraFieldValues = new ExtraFieldValue('course');
         $extraFieldValues->deleteValuesByItem($courseId);
         // Add event to system log
         $user_id = api_get_user_id();
         Event::addEvent(LOG_COURSE_DELETE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $courseId);
     }
 }
コード例 #2
0
ファイル: access_url.php プロジェクト: daffef/chamilo-lms
function WSRemoveCourseFromPortal($params)
{
    if (!WSHelperVerifyKey($params['secret_key'])) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $courseInfo = CourseManager::getCourseInfoFromOriginalId($params['original_course_id_value'], $params['original_course_id_name']);
    $courseId = $courseInfo['real_id'];
    $portalId = $params['portal_id'];
    UrlManager::delete_url_rel_course($courseId, $portalId);
    $result = UrlManager::relation_url_course_exist($courseId, $portalId);
    if (empty($result)) {
        return true;
    }
    return false;
}
コード例 #3
0
ファイル: course.lib.php プロジェクト: ragebat/chamilo-lms
 /**
  * Delete a course
  * This function deletes a whole course-area from the platform. When the
  * given course is a virtual course, the database and directory will not be
  * deleted.
  * When the given course is a real course, also all virtual courses refering
  * to the given course will be deleted.
  * Considering the fact that we remove all traces of the course in the main
  * database, it makes sense to remove all tracking as well (if stats databases exist)
  * so that a new course created with this code would not use the remains of an older
  * course.
  *
  * @param string The code of the course to delete
  * course from the groups in the real course if they are not subscribed in
  * that real course.
  */
 public static function delete_course($code)
 {
     $table_course = Database::get_main_table(TABLE_MAIN_COURSE);
     $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $table_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
     $table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
     $table_course_rel_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
     $table_course_survey = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY);
     $table_course_survey_question = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION);
     $table_course_survey_question_option = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION_OPTION);
     $table_stats_hotpots = Database::get_main_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
     $table_stats_attempt = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
     $table_stats_exercises = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
     $table_stats_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
     $table_stats_lastaccess = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
     $table_stats_course_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
     $table_stats_online = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ONLINE);
     $table_stats_default = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
     $table_stats_downloads = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
     $table_stats_links = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LINKS);
     $table_stats_uploads = Database::get_main_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
     $courseInfo = api_get_course_info($code);
     if (empty($courseInfo)) {
         return false;
     }
     //self::create_database_dump($courseInfo);
     $code = Database::escape_string($code);
     $courseId = $courseInfo['real_id'];
     $course_tables = self::get_course_tables();
     // Cleaning c_x tables
     if (!empty($courseInfo['id'])) {
         foreach ($course_tables as $table) {
             $table = Database::get_course_table($table);
             $sql = "DELETE FROM {$table} WHERE c_id = {$courseId} ";
             Database::query($sql);
         }
     }
     if (!empty($courseInfo['directory'])) {
         $course_dir = api_get_path(SYS_COURSE_PATH) . $courseInfo['directory'];
         $archive_dir = api_get_path(SYS_ARCHIVE_PATH) . $courseInfo['directory'] . '_' . time();
         if (is_dir($course_dir)) {
             rename($course_dir, $archive_dir);
         }
     }
     // Unsubscribe all classes from the course
     /*$sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'";
       Database::query($sql);*/
     // Unsubscribe all users from the course
     $sql = "DELETE FROM {$table_course_user} WHERE c_id ='" . $courseId . "'";
     Database::query($sql);
     // Delete the course from the sessions tables
     $sql = "DELETE FROM {$table_session_course} WHERE c_id='" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_session_course_user} WHERE c_id='" . $courseId . "'";
     Database::query($sql);
     // Delete from Course - URL
     $sql = "DELETE FROM {$table_course_rel_url} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = 'SELECT survey_id FROM ' . $table_course_survey . ' WHERE course_code="' . $code . '"';
     $result_surveys = Database::query($sql);
     while ($surveys = Database::fetch_array($result_surveys)) {
         $survey_id = $surveys[0];
         $sql = 'DELETE FROM ' . $table_course_survey_question . ' WHERE survey_id="' . $survey_id . '"';
         Database::query($sql);
         $sql = 'DELETE FROM ' . $table_course_survey_question_option . ' WHERE survey_id="' . $survey_id . '"';
         Database::query($sql);
         $sql = 'DELETE FROM ' . $table_course_survey . ' WHERE survey_id="' . $survey_id . '"';
         Database::query($sql);
     }
     // Delete the course from the stats tables
     $sql = "DELETE FROM {$table_stats_hotpots} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_attempt} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_exercises} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_access} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_lastaccess} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_course_access} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_online} WHERE course = '" . $code . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_default} WHERE default_cours_code = '" . $code . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_downloads} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_links} WHERE c_id = '" . $courseId . "'";
     Database::query($sql);
     $sql = "DELETE FROM {$table_stats_uploads} WHERE upload_cours_id = '" . $code . "'";
     Database::query($sql);
     if (api_is_multiple_url_enabled()) {
         $url_id = 1;
         if (api_get_current_access_url_id() != -1) {
             $url_id = api_get_current_access_url_id();
         }
         UrlManager::delete_url_rel_course($courseId, $url_id);
     }
     // delete extra course fields
     $t_cf = Database::get_main_table(TABLE_MAIN_COURSE_FIELD);
     $t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
     $sql = "SELECT distinct field_id FROM {$t_cfv} WHERE course_code = '{$code}'";
     $res_field_ids = Database::query($sql);
     $field_ids = array();
     while ($row_field_id = Database::fetch_row($res_field_ids)) {
         $field_ids[] = $row_field_id[0];
     }
     // Delete from table_course_field_value from a given course_code
     $sql_course_field_value = "DELETE FROM {$t_cfv} WHERE course_code = '{$code}'";
     Database::query($sql_course_field_value);
     $sql = "SELECT distinct field_id FROM {$t_cfv}";
     $res_field_all_ids = Database::query($sql);
     $field_all_ids = array();
     while ($row_field_all_id = Database::fetch_row($res_field_all_ids)) {
         $field_all_ids[] = $row_field_all_id[0];
     }
     if (isset($field_ids) && is_array($field_ids) && count($field_ids) > 0) {
         foreach ($field_ids as $field_id) {
             // check if field id is used into table field value
             if (!empty($field_all_ids) && is_array($field_all_ids)) {
                 if (in_array($field_id, $field_all_ids)) {
                     continue;
                 } else {
                     $sql_course_field = "DELETE FROM {$t_cf} WHERE id = '{$field_id}'";
                     Database::query($sql_course_field);
                 }
             }
         }
     }
     // Delete the course from the database
     /*$sql = "DELETE FROM $table_course WHERE id = '".$courseId."'";
       Database::query($sql);*/
     $em = self::getEntityManager();
     $course = $em->getRepository('ChamiloCoreBundle:Course')->find($courseId);
     $em->remove($course);
     $em->flush();
     // Add event to system log
     $user_id = api_get_user_id();
     Event::addEvent(LOG_COURSE_DELETE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $code);
 }
コード例 #4
0
 /**
  * Updates the access_url_rel_course table  with a given user list
  * @author Julio Montoya
  * @param array $course_list
  * @param int access_url_id
  * */
 public static function update_urls_rel_course($course_list, $access_url_id)
 {
     $table_url_rel_course = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
     $sql = "SELECT c_id FROM {$table_url_rel_course}\n                WHERE access_url_id = " . intval($access_url_id);
     $result = Database::query($sql);
     $existing_courses = array();
     while ($row = Database::fetch_array($result)) {
         $existing_courses[] = $row['c_id'];
     }
     // Adding courses
     foreach ($course_list as $course_code) {
         if (!in_array($course_code, $courseId)) {
             UrlManager::add_course_to_url($courseId, $access_url_id);
             CourseManager::update_course_ranking($courseId, 0, $access_url_id);
         }
     }
     // Deleting old courses
     foreach ($existing_courses as $courseId) {
         if (!in_array($courseId, $course_list)) {
             UrlManager::delete_url_rel_course($courseId, $access_url_id);
             CourseManager::update_course_ranking($courseId, 0, $access_url_id);
         }
     }
 }
コード例 #5
0
 /**
  * Delete a course
  * This function deletes a whole course-area from the platform. When the
  * given course is a virtual course, the database and directory will not be
  * deleted.
  * When the given course is a real course, also all virtual courses refering
  * to the given course will be deleted.
  * Considering the fact that we remove all traces of the course in the main
  * database, it makes sense to remove all tracking as well (if stats databases exist)
  * so that a new course created with this code would not use the remains of an older
  * course.
  *
  * @param string The code of the course to delete
  * @todo When deleting a virtual course: unsubscribe users from that virtual
  * course from the groups in the real course if they are not subscribed in
  * that real course.
  * @todo Remove globals
  */
 public static function delete_course($code)
 {
     $table_course = Database::get_main_table(TABLE_MAIN_COURSE);
     $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     //$table_course_class                 = Database::get_main_table(TABLE_MAIN_COURSE_CLASS);
     $table_session_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
     $table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
     $table_course_survey = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY);
     $table_course_survey_question = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION);
     $table_course_survey_question_option = Database::get_main_table(TABLE_MAIN_SHARED_SURVEY_QUESTION_OPTION);
     $table_course_rel_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
     $table_stats_hotpots = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_HOTPOTATOES);
     $table_stats_attempt = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
     $table_stats_exercises = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
     $table_stats_access = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
     $table_stats_lastaccess = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LASTACCESS);
     $table_stats_course_access = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
     $table_stats_online = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE);
     $table_stats_default = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
     $table_stats_downloads = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
     $table_stats_links = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_LINKS);
     $table_stats_uploads = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_UPLOADS);
     $codeFiltered = Database::escape_string($code);
     $sql = "SELECT * FROM {$table_course} WHERE code='" . $codeFiltered . "'";
     $res = Database::query($sql);
     if (Database::num_rows($res) == 0) {
         return;
     }
     $count = 0;
     if (api_is_multiple_url_enabled()) {
         require_once api_get_path(LIBRARY_PATH) . 'urlmanager.lib.php';
         $url_id = 1;
         if (api_get_current_access_url_id() != -1) {
             $url_id = api_get_current_access_url_id();
         }
         UrlManager::delete_url_rel_course($code, $url_id);
         $count = UrlManager::getcountUrlRelCourse($code);
     }
     if ($count == 0) {
         self::create_database_dump($code);
         if (!self::is_virtual_course_from_system_code($code)) {
             // If this is not a virtual course, look for virtual courses that depend on this one, if any
             $virtual_courses = self::get_virtual_courses_linked_to_real_course($code);
             foreach ($virtual_courses as $index => $virtual_course) {
                 // Unsubscribe all classes from the virtual course
                 /*$sql = "DELETE FROM $table_course_class WHERE course_code='".$virtual_course['code']."'";
                   Database::query($sql);*/
                 // Unsubscribe all users from the virtual course
                 $sql = "DELETE FROM {$table_course_user} WHERE course_code='" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 // Delete the course from the sessions tables
                 $sql = "DELETE FROM {$table_session_course} WHERE course_code='" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_session_course_user} WHERE course_code='" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 // Delete the course from the survey tables
                 $sql = "DELETE FROM {$table_course_survey} WHERE course_code='" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 /*$sql = "DELETE FROM $table_course_survey_user WHERE db_name='".$virtual_course['db_name']."'";
                   Database::query($sql);
                   $sql = "DELETE FROM $table_course_survey_reminder WHERE db_name='".$virtual_course['db_name']."'";
                   Database::query($sql);*/
                 // Delete the course from the stats tables
                 $sql = "DELETE FROM {$table_stats_hotpots} WHERE exe_cours_id = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_attempt} WHERE course_code = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_exercises} WHERE exe_cours_id = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_access} WHERE access_cours_code = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_lastaccess} WHERE access_cours_code = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_course_access} WHERE course_code = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_online} WHERE course = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_default} WHERE default_cours_code = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_downloads} WHERE down_cours_id = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_links} WHERE links_cours_id = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 $sql = "DELETE FROM {$table_stats_uploads} WHERE upload_cours_id = '" . $virtual_course['code'] . "'";
                 Database::query($sql);
                 // Delete the course from the course table
                 $sql = "DELETE FROM {$table_course} WHERE code='" . $virtual_course['code'] . "'";
                 Database::query($sql);
             }
             $sql = "SELECT * FROM {$table_course} WHERE code='" . $codeFiltered . "'";
             $res = Database::query($sql);
             $course = Database::fetch_array($res);
             $course_tables = get_course_tables();
             //Cleaning c_x tables
             if (!empty($course['id'])) {
                 foreach ($course_tables as $table) {
                     $table = Database::get_course_table($table);
                     $sql = "DELETE FROM {$table} WHERE c_id = {$course['id']} ";
                     Database::query($sql);
                 }
             }
             $course_dir = api_get_path(SYS_COURSE_PATH) . $course['directory'];
             $archive_dir = api_get_path(SYS_ARCHIVE_PATH) . $course['directory'] . '_' . time();
             if (is_dir($course_dir)) {
                 rename($course_dir, $archive_dir);
             }
         }
         // Unsubscribe all classes from the course
         /*$sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'";
           Database::query($sql);*/
         // Unsubscribe all users from the course
         $sql = "DELETE FROM {$table_course_user} WHERE course_code='" . $codeFiltered . "'";
         Database::query($sql);
         // Delete the course from the sessions tables
         $sql = "DELETE FROM {$table_session_course} WHERE course_code='" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_session_course_user} WHERE course_code='" . $codeFiltered . "'";
         Database::query($sql);
         // Delete from Course - URL
         $sql = "DELETE FROM {$table_course_rel_url} WHERE course_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = 'SELECT survey_id FROM ' . $table_course_survey . ' WHERE course_code="' . $codeFiltered . '"';
         $result_surveys = Database::query($sql);
         while ($surveys = Database::fetch_array($result_surveys)) {
             $survey_id = $surveys[0];
             $sql = 'DELETE FROM ' . $table_course_survey_question . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
             $sql = 'DELETE FROM ' . $table_course_survey_question_option . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
             $sql = 'DELETE FROM ' . $table_course_survey . ' WHERE survey_id="' . $survey_id . '"';
             Database::query($sql);
         }
         // Delete the course from the stats tables
         $sql = "DELETE FROM {$table_stats_hotpots} WHERE exe_cours_id = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_attempt} WHERE course_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_exercises} WHERE exe_cours_id = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_access} WHERE access_cours_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_lastaccess} WHERE access_cours_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_course_access} WHERE course_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_online} WHERE course = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_default} WHERE default_cours_code = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_downloads} WHERE down_cours_id = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_links} WHERE links_cours_id = '" . $codeFiltered . "'";
         Database::query($sql);
         $sql = "DELETE FROM {$table_stats_uploads} WHERE upload_cours_id = '" . $codeFiltered . "'";
         Database::query($sql);
         // Delete the course from the database
         $sql = "DELETE FROM {$table_course} WHERE code='" . $codeFiltered . "'";
         Database::query($sql);
         // delete extra course fields
         $t_cf = Database::get_main_table(TABLE_MAIN_COURSE_FIELD);
         $t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES);
         $sql = "SELECT distinct field_id FROM {$t_cfv} WHERE course_code = '{$codeFiltered}'";
         $res_field_ids = Database::query($sql);
         $field_ids = array();
         while ($row_field_id = Database::fetch_row($res_field_ids)) {
             $field_ids[] = $row_field_id[0];
         }
         // Delete from table_course_field_value from a given course_code
         $sql_course_field_value = "DELETE FROM {$t_cfv} WHERE course_code = '{$codeFiltered}'";
         Database::query($sql_course_field_value);
         $sql = "SELECT distinct field_id FROM {$t_cfv}";
         $res_field_all_ids = Database::query($sql);
         $field_all_ids = array();
         while ($row_field_all_id = Database::fetch_row($res_field_all_ids)) {
             $field_all_ids[] = $row_field_all_id[0];
         }
         if (is_array($field_ids) && count($field_ids) > 0) {
             foreach ($field_ids as $field_id) {
                 // check if field id is used into table field value
                 if (is_array($field_all_ids)) {
                     if (in_array($field_id, $field_all_ids)) {
                         continue;
                     } else {
                         $sql_course_field = "DELETE FROM {$t_cf} WHERE id = '{$field_id}'";
                         Database::query($sql_course_field);
                     }
                 }
             }
         }
         // Add event to system log
         $user_id = api_get_user_id();
         event_system(LOG_COURSE_DELETE, LOG_COURSE_CODE, $code, api_get_utc_datetime(), $user_id, $code);
     }
 }