|
@@ -245,8 +245,56 @@ if (defined('SYSTEM_INSTALLATION')) {
|
|
|
error_log('Error in '.$query.': '.Database::error());
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+
|
|
|
+ $table_lp_item_view = $row_course['db_name'].".lp_item_view";
|
|
|
+ $table_lp_view = $row_course['db_name'].".lp_view";
|
|
|
+ $table_lp_item = $row_course['db_name'].".lp_item";
|
|
|
|
|
|
+ if ($singleDbForm) {
|
|
|
+ $table_lp_item_view = "$prefix{$row_course['db_name']}_lp_item_view";
|
|
|
+ $table_lp_view = "$prefix{$row_course['db_name']}_lp_view";
|
|
|
+ $table_lp_item = "$prefix{$row_course['db_name']}_lp_item";
|
|
|
+ }
|
|
|
+
|
|
|
+ // Filling the track_e_exercices.orig_lp_item_view_id field in order to have better traceability in exercises included in a LP see #3188
|
|
|
+
|
|
|
+ $query = "SELECT DISTINCT path as exercise_id, lp_item_id, lp_view_id, user_id, v.lp_id
|
|
|
+ FROM $table_lp_item_view iv INNER JOIN $table_lp_view v ON v.id = iv.lp_view_id INNER JOIN $table_lp_item i ON i.id = lp_item_id
|
|
|
+ WHERE item_type = 'quiz'";
|
|
|
+ $result = Database::query($query);
|
|
|
+
|
|
|
+ if (Database::num_rows($result) > 0) {
|
|
|
+ while ($row = Database::fetch_array($result,'ASSOC')) {
|
|
|
+ $sql = "SELECT exe_id FROM $dbNameForm.track_e_exercices
|
|
|
+ WHERE exe_user_id = {$row['user_id']} AND
|
|
|
+ exe_cours_id = '{$row_course['code']}' AND
|
|
|
+ exe_exo_id = {$row['exercise_id']} AND
|
|
|
+ orig_lp_id = {$row['lp_id']} AND
|
|
|
+ orig_lp_item_id = {$row['lp_item_id']} ";
|
|
|
+ $sub_result = Database::query($sql);
|
|
|
+ $exe_list = array();
|
|
|
+ while ($sub_row = Database::fetch_array($sub_result,'ASSOC')) {
|
|
|
+ $exe_list[] = $sub_row['exe_id'];
|
|
|
+ }
|
|
|
+
|
|
|
+ $sql = "SELECT iv.id, iv.view_count
|
|
|
+ FROM $table_lp_item_view iv INNER JOIN $table_lp_view v ON v.id = iv.lp_view_id INNER JOIN $table_lp_item i ON i.id = lp_item_id
|
|
|
+ WHERE item_type = 'quiz' AND user_id = {$row['user_id']} AND path = {$row['exercise_id']} ";
|
|
|
+ $sub_result = Database::query($sql);
|
|
|
+ $lp_item_view_id_list = array();
|
|
|
+ while ($sub_row = Database::fetch_array($sub_result,'ASSOC')) {
|
|
|
+ $lp_item_view_id_list[] = $sub_row['id'];
|
|
|
+ }
|
|
|
+ $i = 0;
|
|
|
+ foreach($exe_list as $exe_id) {
|
|
|
+ $lp_item_view_id = $lp_item_view_id_list[$i];
|
|
|
+ $update = "UPDATE $dbNameForm.track_e_exercices SET orig_lp_item_view_id = '$lp_item_view_id' WHERE exe_id = $exe_id ";
|
|
|
+ Database::query($update);
|
|
|
+ $i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|