1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?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é
- *
- * @package chamilo.gradebook
- */
- 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();
- $cidReq = Security::remove_XSS($_GET['cidReq']);
- $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(['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;
- }
|