diff --git a/main/exercice/exercice.php b/main/exercice/exercice.php index f623dae576..eaa9bae674 100644 --- a/main/exercice/exercice.php +++ b/main/exercice/exercice.php @@ -532,11 +532,13 @@ if ($is_allowedToEdit) { $sql = 'SELECT gl.id FROM ' . $tbl_grade_link . ' gl WHERE gl.type="1" AND gl.ref_id="' . $exerciseId . '";'; $result = Database::query($sql, __FILE__, __LINE__); $row = Database :: fetch_array($result, 'ASSOC'); - - $link = LinkFactory :: load($row['id']); - if ($link[0] != null) { - $link[0]->delete(); - } + //see + if (!empty($row['id'])) { + $link = LinkFactory :: load($row['id']); + if ($link[0] != null) { + $link[0]->delete(); + } + } Display :: display_confirmation_message(get_lang('ExerciseDeleted')); break; case 'enable' : // enables an exercise diff --git a/main/gradebook/gradebook.php b/main/gradebook/gradebook.php index 56e57179dc..a5f4cb1168 100644 --- a/main/gradebook/gradebook.php +++ b/main/gradebook/gradebook.php @@ -269,15 +269,18 @@ if (isset ($_GET['visiblelink'])) { } if (isset ($_GET['deletelink'])) { block_students(); - $link= LinkFactory :: load(Security::remove_XSS($_GET['deletelink'])); - if ($link[0] != null) { - $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.Security::remove_XSS($_GET['deletelink']).');'; - Database::query($sql); - $link[0]->delete(); + //fixing #5229 + if (!empty($_GET['deletelink'])) { + $link= LinkFactory :: load(Security::remove_XSS($_GET['deletelink'])); + if ($link[0] != null) { + $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.Security::remove_XSS($_GET['deletelink']).');'; + Database::query($sql); + $link[0]->delete(); + } + unset ($link); + $confirmation_message = get_lang('LinkDeleted'); + $filter_confirm_msg = false; } - unset ($link); - $confirmation_message = get_lang('LinkDeleted'); - $filter_confirm_msg = false; } $course_to_crsind = isset ($course_to_crsind) ? $course_to_crsind : ''; if ($course_to_crsind && !isset($_GET['confirm'])) { @@ -328,11 +331,14 @@ if (isset ($_POST['action'])) { $number_of_deleted_evaluations++; } if (api_substr($indexstr, 0, 4) == 'LINK') { - $link= LinkFactory :: load(api_substr($indexstr, 4)); - if ($link[0] != null) { - $link[0]->delete(); + $id = api_substr($indexstr, 4); + if (!empty($id)) { + $link= LinkFactory :: load(); + if ($link[0] != null) { + $link[0]->delete(); + } + $number_of_deleted_links++; } - $number_of_deleted_links++; } } $confirmation_message = get_lang('DeletedCategories') . ' : ' . $number_of_deleted_categories . '
' . get_lang('DeletedEvaluations') . ' : ' . $number_of_deleted_evaluations . '
' . get_lang('DeletedLinks') . ' : ' . $number_of_deleted_links . '

' . get_lang('TotalItems') . ' : ' . $number_of_selected_items . ''; diff --git a/main/gradebook/index.php b/main/gradebook/index.php index 003387d08f..321070a03a 100755 --- a/main/gradebook/index.php +++ b/main/gradebook/index.php @@ -327,15 +327,18 @@ if (isset ($_GET['visiblelink'])) { if (isset ($_GET['deletelink'])) { block_students(); $get_delete_link=Security::remove_XSS($_GET['deletelink']); - $link= LinkFactory :: load($get_delete_link); - if ($link[0] != null) { - $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.$get_delete_link.');'; - Database::query($sql); - $link[0]->delete(); + //fixing #5229 + if (!empty($get_delete_link)) { + $link= LinkFactory :: load($get_delete_link); + if ($link[0] != null) { + $sql='UPDATE '.$tbl_forum_thread.' SET thread_qualify_max=0,thread_weight=0,thread_title_qualify="" WHERE thread_id=(SELECT ref_id FROM '.$tbl_grade_links.' where id='.$get_delete_link.');'; + Database::query($sql); + $link[0]->delete(); + } + unset ($link); + $confirmation_message = get_lang('LinkDeleted'); + $filter_confirm_msg = false; } - unset ($link); - $confirmation_message = get_lang('LinkDeleted'); - $filter_confirm_msg = false; } if (!empty($course_to_crsind) && !isset($_GET['confirm'])) { @@ -387,12 +390,15 @@ if (isset ($_POST['action'])) { $number_of_deleted_evaluations++; } if (substr($indexstr, 0, 4) == 'LINK') { - $link= LinkFactory :: load(substr($indexstr, 4)); - if ($link[0] != null) { - $link[0]->delete(); + //fixing #5229 + $id = substr($indexstr, 4); + if (!empty($id)) { + $link= LinkFactory :: load($id); + if ($link[0] != null) { + $link[0]->delete(); + } + $number_of_deleted_links++; } - - $number_of_deleted_links++; } } $confirmation_message = get_lang('DeletedCategories') . ' : ' . $number_of_deleted_categories . '
' . get_lang('DeletedEvaluations') . ' : ' . $number_of_deleted_evaluations . '
' . get_lang('DeletedLinks') . ' : ' . $number_of_deleted_links . '

' . get_lang('TotalItems') . ' : ' . $number_of_selected_items . ''; diff --git a/main/newscorm/learnpath.class.php b/main/newscorm/learnpath.class.php index 46b631ee9e..2c059279f5 100644 --- a/main/newscorm/learnpath.class.php +++ b/main/newscorm/learnpath.class.php @@ -883,10 +883,15 @@ class learnpath { $sql = 'SELECT gl.id FROM ' . $tbl_grade_link . ' gl WHERE gl.type="4" AND gl.ref_id="' . $id . '";'; $result = Database::query($sql, __FILE__, __LINE__); $row = Database :: fetch_array($result, 'ASSOC'); - $link = LinkFactory :: load($row['id']); - if ($link[0] != null) { - $link[0]->delete(); + + //fixing gradebook link deleted see #5229 + if (!empty($row['id'])) { + $link = LinkFactory :: load($row['id']); + if ($link[0] != null) { + $link[0]->delete(); + } } + //TODO: also delete items and item-views if (api_get_setting('search_enabled') == 'true') { require_once (api_get_path(LIBRARY_PATH) . 'specific_fields_manager.lib.php');