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');