$session_id, 'cidReq' => Security::remove_XSS($cidReq), 'file' => $path, 'cid' => api_get_course_id(), 'uid' => api_get_user_id(), ] ); header('Location: '.$doExerciseUrl); exit; } if (!empty($doExerciseUrl)) { header('Location: '.$doExerciseUrl); exit; } else { $url = api_get_path(WEB_CODE_PATH).'exercise/overview.php?' .http_build_query(['session_id' => $session_id, 'cidReq' => $cidReq]); if (isset($_GET['gradebook'])) { $url .= '&gradebook=view&exerciseId='.((int) $_GET['exerciseId']); // Check if exercise is inserted inside a LP, if that's the case $exerciseId = $_GET['exerciseId']; $exercise = new Exercise(); $exercise->read($exerciseId); if (!empty($exercise->id)) { if ($exercise->exercise_was_added_in_lp) { if (!empty($exercise->lpList)) { $count = count($exercise->lpList); if ($count == 1) { // If the exercise was added once redirect to the LP $firstLp = current($exercise->lpList); if (isset($firstLp['lp_id'])) { $url = api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?'.api_get_cidreq().'&' .http_build_query( [ 'lp_id' => $firstLp['lp_id'], 'action' => 'view', 'isStudentView' => 'true', ] ); } } else { // If the exercise was added multiple times show the LP list $url = api_get_path(WEB_CODE_PATH).'lp/lp_controller.php?'.api_get_cidreq().'&action=list'; } } } else { $url = api_get_path(WEB_CODE_PATH).'exercise/overview.php?'.http_build_query( [ 'session_id' => $session_id, 'cidReq' => $cidReq, 'gradebook' => $gradebook, 'origin' => '', 'learnpath_id' => '', 'learnpath_item_id' => '', 'exerciseId' => (int) $_GET['exerciseId'], ] ); } } } header('Location: '.$url); exit; }