From dc87fd5e90cf4dae77cca11d3c32fe11eabbe30e Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Fri, 16 Nov 2018 12:42:37 +0100 Subject: [PATCH] Fix lp item prerequisite after migration from 1.9.x see BT#15056 --- main/inc/lib/lp_item.lib.php | 50 ++++++++++++++++++------------------ main/lp/learnpath.class.php | 6 ++--- 2 files changed, 28 insertions(+), 28 deletions(-) diff --git a/main/inc/lib/lp_item.lib.php b/main/inc/lib/lp_item.lib.php index d02ac2cf4f..90be7df51c 100755 --- a/main/inc/lib/lp_item.lib.php +++ b/main/inc/lib/lp_item.lib.php @@ -43,10 +43,10 @@ class LpItem { if ($in_c_id > 0 && $in_id > 0) { $item_view_table = Database::get_course_table(TABLE_LP_ITEM); - $sql = "SELECT * FROM $item_view_table - WHERE - c_id=".intval($in_c_id)." AND - id=".intval($in_id); + $sql = "SELECT * FROM $item_view_table + WHERE + c_id=".intval($in_c_id)." AND + iid=".intval($in_id); $res = Database::query($sql); $data = Database::fetch_array($res); @@ -84,27 +84,27 @@ class LpItem { $table = Database::get_course_table(TABLE_LP_ITEM); if ($this->c_id > 0 && $this->id > 0) { - $sql = "UPDATE $table SET - lp_id = '".intval($this->lp_id)."' , - item_type = '".Database::escape_string($this->item_type)."' , - ref = '".Database::escape_string($this->ref)."' , - title = '".Database::escape_string($this->title)."' , - description = '".Database::escape_string($this->description)."' , - path = '".Database::escape_string($this->path)."' , - min_score = '".Database::escape_string($this->min_score)."' , - max_score = '".Database::escape_string($this->max_score)."' , - mastery_score = '".Database::escape_string($this->mastery_score)."' , - parent_item_id = '".Database::escape_string($this->parent_item_id)."' , - previous_item_id = '".Database::escape_string($this->previous_item_id)."' , - next_item_id = '".Database::escape_string($this->next_item_id)."' , - display_order = '".Database::escape_string($this->display_order)."' , - prerequisite = '".Database::escape_string($this->prerequisite)."' , - parameters = '".Database::escape_string($this->parameters)."' , - launch_data = '".Database::escape_string($this->launch_data)."' , - max_time_allowed = '".Database::escape_string($this->max_time_allowed)."' , - terms = '".Database::escape_string($this->terms)."' , - search_did = '".Database::escape_string($this->search_did)."' , - audio = '".Database::escape_string($this->audio)."' + $sql = "UPDATE $table SET + lp_id = '".intval($this->lp_id)."' , + item_type = '".Database::escape_string($this->item_type)."' , + ref = '".Database::escape_string($this->ref)."' , + title = '".Database::escape_string($this->title)."' , + description = '".Database::escape_string($this->description)."' , + path = '".Database::escape_string($this->path)."' , + min_score = '".Database::escape_string($this->min_score)."' , + max_score = '".Database::escape_string($this->max_score)."' , + mastery_score = '".Database::escape_string($this->mastery_score)."' , + parent_item_id = '".Database::escape_string($this->parent_item_id)."' , + previous_item_id = '".Database::escape_string($this->previous_item_id)."' , + next_item_id = '".Database::escape_string($this->next_item_id)."' , + display_order = '".Database::escape_string($this->display_order)."' , + prerequisite = '".Database::escape_string($this->prerequisite)."' , + parameters = '".Database::escape_string($this->parameters)."' , + launch_data = '".Database::escape_string($this->launch_data)."' , + max_time_allowed = '".Database::escape_string($this->max_time_allowed)."' , + terms = '".Database::escape_string($this->terms)."' , + search_did = '".Database::escape_string($this->search_did)."' , + audio = '".Database::escape_string($this->audio)."' WHERE c_id=".$this->c_id." AND id=".$this->id; Database::query($sql); } diff --git a/main/lp/learnpath.class.php b/main/lp/learnpath.class.php index 2bd320c80d..3a03bf6f7b 100755 --- a/main/lp/learnpath.class.php +++ b/main/lp/learnpath.class.php @@ -10332,13 +10332,13 @@ class learnpath $selectedMinScore = []; $selectedMaxScore = []; $masteryScore = []; - while ($row = Database::fetch_array($result)) { - if ($row['id'] == $item_id) { + if ($row['iid'] == $item_id) { $selectedMinScore[$row['prerequisite']] = $row['prerequisite_min_score']; $selectedMaxScore[$row['prerequisite']] = $row['prerequisite_max_score']; - $masteryScore[$row['prerequisite']] = $row['mastery_score']; } + $masteryScore[$row['iid']] = $row['mastery_score']; + $arrLP[] = [ 'id' => $row['iid'], 'item_type' => $row['item_type'],