You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
3.1 KiB
88 lines
3.1 KiB
<?php
|
|
|
|
/* For licensing terms, see /license.txt */
|
|
|
|
/**
|
|
* Sets needed course variables and then jumps to the exercises result page.
|
|
* This intermediate page is needed because the user is not inside a course
|
|
* when visiting the gradebook, and several course scripts rely on these
|
|
* variables.
|
|
* Most code here is ripped from /main/course_home/course_home.php.
|
|
*
|
|
* @author Bert Steppé
|
|
*/
|
|
require_once __DIR__.'/../inc/global.inc.php';
|
|
api_block_anonymous_users();
|
|
$this_section = SECTION_COURSES;
|
|
|
|
$gradebook = Security::remove_XSS($_GET['gradebook']);
|
|
$session_id = api_get_session_id();
|
|
$courseId = Security::remove_XSS($_GET['cid']);
|
|
$type = Security::remove_XSS($_GET['type']);
|
|
$doExerciseUrl = '';
|
|
|
|
// no support for hot potatoes
|
|
/*if ($type == LINK_HOTPOTATOES) {
|
|
$exerciseId = $_GET['exerciseId'];
|
|
$path = Security::remove_XSS($_GET['path']);
|
|
$doExerciseUrl = api_get_path(WEB_CODE_PATH).'exercise/showinframes.php?'.http_build_query(
|
|
[
|
|
'session_id' => $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(['sid' => $session_id, 'cid' => $courseId]);
|
|
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)) {
|
|
// If the exercise was added once redirect to the LP
|
|
$firstLp = $exercise->getLpBySession($session_id);
|
|
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 {
|
|
$url = api_get_path(WEB_CODE_PATH).'exercise/overview.php?'.http_build_query(
|
|
[
|
|
'sid' => $session_id,
|
|
'cid' => $courseId,
|
|
'gradebook' => $gradebook,
|
|
'origin' => '',
|
|
'learnpath_id' => '',
|
|
'learnpath_item_id' => '',
|
|
'exerciseId' => (int) $_GET['exerciseId'],
|
|
]
|
|
);
|
|
}
|
|
}
|
|
}
|
|
|
|
header('Location: '.$url);
|
|
exit;
|
|
}
|
|
|