* @version $Id: admin.php 10680 2007-01-11 21:26:23Z pcool $ * * @todo respect coding guidelines */ /** * Code */ // name of the language file that needs to be included $language_file = 'exercice'; // name of the language file that needs to be included require_once '../inc/global.inc.php'; // including additional libraries require_once 'exercise.class.php'; require_once 'question.class.php'; require_once 'answer.class.php'; //debug param. 0: no display - 1: debug display $debug=0; // general parameters passed via POST/GET $my_course_code = $_GET['cid']; if(!empty($_REQUEST['exe'])){ $my_exe = $_REQUEST['exe']; }else{ $my_exe = null; } if(!empty($_REQUEST['qst'])){ $my_qst = $_REQUEST['qst']; }else{ $my_qst = null; } if(!empty($_REQUEST['usr'])){ $my_usr = $_REQUEST['usr']; }else{ $my_usr = null; } if(!empty($_REQUEST['cidReq'])){ $my_cid = $_REQUEST['cidReq']; }else{ $my_cid = null; } if(!empty($_POST['action'])){ $action = $_POST['action']; }else{ $action = ''; } if (empty($my_qst) or empty($my_usr) or empty($my_cid) or empty($my_exe)){ header('Location: exercice.php'); exit(); } if(!$is_courseTutor) { api_not_allowed(); } $obj_question = Question :: read($my_qst); if (isset($_SESSION['gradebook'])){ $gradebook= $_SESSION['gradebook']; } if (!empty($gradebook) && $gradebook=='view') { $interbreadcrumb[]= array ( 'url' => '../gradebook/'.$_SESSION['gradebook_dest'], 'name' => get_lang('ToolGradebook') ); } $nameTools=get_lang('Exercice'); $interbreadcrumb[]=array("url" => "exercice.php","name" => get_lang('Exercices')); $my_msg = 'No change.'; $courseId = api_get_course_int_id(); if ($action == 'mark') { if (!empty($_POST['score']) AND $_POST['score'] < $obj_question->selectWeighting() AND $_POST['score'] >= 0) { //mark the user mark into the database using something similar to the following function: $exercise_table = Database::get_main_table('track_e_exercices'); #global $origin, $tbl_learnpath_user, $learnpath_id, $learnpath_item_id; $sql = "SELECT * FROM $exercise_table WHERE exe_user_id = '".Database::escape_string($my_usr)."' AND c_id = '".$courseId."' AND exe_exo_id = '".Database::escape_string($my_exe)."' ORDER BY exe_date DESC"; #echo $sql; $res = Database::query($sql); if (Database::num_rows($res)>0){ $row = Database::fetch_array($res); //@todo Check that just summing past score and the new free answer mark doesn't come up // with a score higher than the possible score for that exercise $my_score = $row['exe_result'] + $_POST['score']; $sql = "UPDATE $exercise_table SET exe_result = '$my_score' WHERE exe_id = '".$row['exe_id']."'"; #echo $sql; $res = Database::query($sql); $my_msg = get_lang('MarkIsUpdated'); } else { $my_score = $_POST['score']; $reallyNow = api_get_utc_datetime(); $sql = "INSERT INTO $exercise_table ( exe_user_id, c_id, exe_exo_id, exe_result, exe_weighting, exe_date ) VALUES ( '".Database::escape_string($my_usr)."', '".$courseId."', '".Database::escape_string($my_exe)."', '".Database::escape_string($my_score)."', '".Database::escape_string($obj_question->selectWeighting())."', ".$reallyNow." )"; #if ($origin == 'learnpath') #{ # if ($user_id == "NULL") # { # $user_id = '0'; # } # $sql2 = "update $tbl_learnpath_user set score='$score' WHERE (user_id=$user_id and learnpath_id='$learnpath_id' and learnpath_item_id='$learnpath_item_id')"; # $res2 = Database::query($sql2); #} $res = Database::query($sql); $my_msg = get_lang('MarkInserted'); } //Database::query($sql); //return 0; } else { $my_msg .= get_lang('TotalScoreTooBig'); } } Display::display_header($nameTools,"Exercise"); // Display simple marking interface // 1a - result of previous marking then exit suggestion // 1b - user answer and marking box + submit button $objAnswerTmp = new Answer(); $objAnswerTmp->selectAnswer($answerId); if($action == 'mark'){ echo $my_msg.'
'.get_lang('Back').''; } else { echo '

'.$obj_question->question .':

'.$obj_question->selectTitle().'

'.get_lang('PleaseGiveAMark'). "
\n" ."\n" ."\n" ."\n" ."\n" ."". "\n" ."
"; } Display::display_footer();