diff --git a/main/exercice/exercice.php b/main/exercice/exercice.php
index 8fecae13bb..a529d78e04 100644
--- a/main/exercice/exercice.php
+++ b/main/exercice/exercice.php
@@ -1,4 +1,5 @@
-$v) {
- $keyexp = explode('_',$key);
-
- $id = Database::escape_string($id);
- $v = Database::escape_string($v);
- $my_questionid= Database::escape_string($keyexp[1]);
-
- if ($keyexp[0] == "marks") {
+ $from_name = $_SESSION['_user']['firstName'] . " " . $_SESSION['_user']['lastName'];
+ $url = api_get_path(WEB_CODE_PATH) . 'exercice/exercice.php?' . api_get_cidreq() . '&show=result';
+ $TBL_RECORDING = Database :: get_statistic_table('track_e_attempt_recording');
+ $total_weighting = $_REQUEST['totalWeighting'];
+
+ foreach ($_POST as $key => $v) {
+ $keyexp = explode('_', $key);
+
+ $id = Database :: escape_string($id);
+ $v = Database :: escape_string($v);
+ $my_questionid = Database :: escape_string($keyexp[1]);
+
+ if ($keyexp[0] == "marks") {
$sql = "SELECT question from $TBL_QUESTIONS WHERE id = '$my_questionid'";
- $result =api_sql_query($sql, __FILE__, __LINE__);
- $ques_name = Database::result($result,0,"question");
+ $result = api_sql_query($sql, __FILE__, __LINE__);
+ $ques_name = Database :: result($result, 0, "question");
- $query = "UPDATE $TBL_TRACK_ATTEMPT SET marks = '".$v."'
- WHERE question_id = '".$my_questionid."'
- AND exe_id='".$id."'";
+ $query = "UPDATE $TBL_TRACK_ATTEMPT SET marks = '" . $v . "'
+ WHERE question_id = '" . $my_questionid . "'
+ AND exe_id='" . $id . "'";
api_sql_query($query, __FILE__, __LINE__);
$qry = 'SELECT sum(marks) as tot
- FROM '.$TBL_TRACK_ATTEMPT.' WHERE exe_id = '.intval($id).'
- GROUP BY question_id';
+ FROM ' . $TBL_TRACK_ATTEMPT . ' WHERE exe_id = ' . intval($id) . '
+ GROUP BY question_id';
- $res = api_sql_query($qry,__FILE__,__LINE__);
- $tot = Database::result($res,0,'tot');
+ $res = api_sql_query($qry, __FILE__, __LINE__);
+ $tot = Database :: result($res, 0, 'tot');
//updating also the total weight
- $totquery = "UPDATE $TBL_TRACK_EXERCICES SET exe_result = '".Database::escape_string($tot)."', exe_weighting = '".Database::escape_string($total_weighting)."'
- WHERE exe_Id='".Database::escape_string($id)."'";
-
+ $totquery = "UPDATE $TBL_TRACK_EXERCICES SET exe_result = '" . Database :: escape_string($tot) . "', exe_weighting = '" . Database :: escape_string($total_weighting) . "'
+ WHERE exe_Id='" . Database :: escape_string($id) . "'";
+
api_sql_query($totquery, __FILE__, __LINE__);
- $recording_changes = 'INSERT INTO '.$TBL_RECORDING.' ' .
- '(exe_id,
- question_id,
- marks,
- insert_date,
- author)
- VALUES
- ('."'$id','".$my_questionid."','$v','".date('Y-m-d H:i:s')."','".api_get_user_id()."'".')';
+ $recording_changes = 'INSERT INTO ' . $TBL_RECORDING . ' ' .
+ '(exe_id,
+ question_id,
+ marks,
+ insert_date,
+ author)
+ VALUES
+ (' . "'$id','" . $my_questionid . "','$v','" . date('Y-m-d H:i:s') . "','" . api_get_user_id() . "'" . ')';
api_sql_query($recording_changes, __FILE__, __LINE__);
- } else {
- $query = "UPDATE $TBL_TRACK_ATTEMPT SET teacher_comment = '".$v."'
- WHERE question_id = '".$my_questionid."'
- AND exe_id = '".$id."'";
- api_sql_query($query, __FILE__, __LINE__);
-
- $recording_changes = 'INSERT INTO '.$TBL_RECORDING.' ' .
- '(exe_id,
- question_id,
- teacher_comment,
- insert_date,
- author)
- VALUES
- ('."'$id','".$my_questionid."','$v','".date('Y-m-d H:i:s')."','".api_get_user_id()."'".')';
+ } else {
+ $query = "UPDATE $TBL_TRACK_ATTEMPT SET teacher_comment = '" . $v . "'
+ WHERE question_id = '" . $my_questionid . "'
+ AND exe_id = '" . $id . "'";
+ api_sql_query($query, __FILE__, __LINE__);
+
+ $recording_changes = 'INSERT INTO ' . $TBL_RECORDING . ' ' .
+ '(exe_id,
+ question_id,
+ teacher_comment,
+ insert_date,
+ author)
+ VALUES
+ (' . "'$id','" . $my_questionid . "','$v','" . date('Y-m-d H:i:s') . "','" . api_get_user_id() . "'" . ')';
api_sql_query($recording_changes, __FILE__, __LINE__);
}
-}
+ }
-$qry = 'SELECT DISTINCT question_id, marks
- FROM '.$TBL_TRACK_ATTEMPT.' where exe_id = '.intval($id).'
- GROUP BY question_id';
+ $qry = 'SELECT DISTINCT question_id, marks
+ FROM ' . $TBL_TRACK_ATTEMPT . ' where exe_id = ' . intval($id) . '
+ GROUP BY question_id';
-$res = api_sql_query($qry,__FILE__,__LINE__);
-$tot = 0;
-while($row = Database::fetch_array($res,'ASSOC')) {
- $tot += $row ['marks'];
-}
+ $res = api_sql_query($qry, __FILE__, __LINE__);
+ $tot = 0;
+ while ($row = Database :: fetch_array($res, 'ASSOC')) {
+ $tot += $row['marks'];
+ }
-$totquery = "UPDATE $TBL_TRACK_EXERCICES SET exe_result = '".Database::escape_string($tot)."' WHERE exe_Id='".Database::escape_string($id)."'";
-
-api_sql_query($totquery, __FILE__, __LINE__);
-$subject = get_lang('ExamSheetVCC');
-$htmlmessage = ''.
- '
' .
- '' .
- '' .
- '' .
- '' .
- '
'.get_lang('DearStudentEmailIntroduction').'
' .
- '
'.get_lang('AttemptVCC').'
' .
- '
' .
- ' ' .
- ' '.get_lang('Question').' ' .
- ' #ques_name# ' .
- ' ' .
- ' ' .
- ' '.get_lang('Exercice').' ' .
- ' #test# ' .
- ' ' .
- '
' .
- '
'.get_lang('ClickLinkToViewComment').' #url# ' .
- ' ' .
- ' '.get_lang('Regards').'
' .
- '
' .
- ' ' .
- ' ';
-$message = ''.sprintf(get_lang('AttemptVCCLong'),$test).' #url#
';
-$mess= str_replace("#test#",$test,$message);
-//$message= str_replace("#ques_name#",$ques_name,$mess);
-$message = str_replace("#url#",$url,$mess);
-$mess = stripslashes($message);
-$headers = " MIME-Version: 1.0 \r\n";
-$headers .= "User-Agent: Dokeos/1.6";
-$headers .= "Content-Transfer-Encoding: 7bit";
-$headers .= 'From: '.$from_name.' <'.$from.'>' . "\r\n";
-$headers="From:$from_name\r\nReply-to: $to\r\nContent-type: text/html; charset=".($charset?$charset:'ISO-8859-15');
-//mail($emailid, $subject, $mess,$headers);
-
-api_mail_html($emailid, $emailid, $subject, $mess, $from_name, $from);
- if (in_array($origin, array('tracking_course','user_course'))) {
- if (isset($_POST['lp_item_id']) && isset($_POST['lp_item_view_id']) && isset($_POST['student_id']) && isset($_POST['total_score']) && isset($_POST['total_time']) && isset($_POST['totalWeighting']) ) {
+ $totquery = "UPDATE $TBL_TRACK_EXERCICES SET exe_result = '" . Database :: escape_string($tot) . "' WHERE exe_Id='" . Database :: escape_string($id) . "'";
+
+ api_sql_query($totquery, __FILE__, __LINE__);
+ $subject = get_lang('ExamSheetVCC');
+ $htmlmessage = '' .
+ '' .
+ '' .
+ '' .
+ '' .
+ '' .
+ '
' . get_lang('DearStudentEmailIntroduction') . '
' .
+ '
' . get_lang('AttemptVCC') . '
' .
+ '
' .
+ ' ' .
+ ' ' . get_lang('Question') . ' ' .
+ ' #ques_name# ' .
+ ' ' .
+ ' ' .
+ ' ' . get_lang('Exercice') . ' ' .
+ ' #test# ' .
+ ' ' .
+ '
' .
+ '
' . get_lang('ClickLinkToViewComment') . ' #url# ' .
+ ' ' .
+ ' ' . get_lang('Regards') . '
' .
+ '
' .
+ ' ' .
+ ' ';
+ $message = '' . sprintf(get_lang('AttemptVCCLong'), $test) . ' #url#
';
+ $mess = str_replace("#test#", $test, $message);
+ //$message= str_replace("#ques_name#",$ques_name,$mess);
+ $message = str_replace("#url#", $url, $mess);
+ $mess = stripslashes($message);
+ $headers = " MIME-Version: 1.0 \r\n";
+ $headers .= "User-Agent: Dokeos/1.6";
+ $headers .= "Content-Transfer-Encoding: 7bit";
+ $headers .= 'From: ' . $from_name . ' <' . $from . '>' . "\r\n";
+ $headers = "From:$from_name\r\nReply-to: $to\r\nContent-type: text/html; charset=" . ($charset ? $charset : 'ISO-8859-15');
+ //mail($emailid, $subject, $mess,$headers);
+
+ api_mail_html($emailid, $emailid, $subject, $mess, $from_name, $from);
+ if (in_array($origin, array (
+ 'tracking_course',
+ 'user_course'
+ ))) {
+ if (isset ($_POST['lp_item_id']) && isset ($_POST['lp_item_view_id']) && isset ($_POST['student_id']) && isset ($_POST['total_score']) && isset ($_POST['total_time']) && isset ($_POST['totalWeighting'])) {
$lp_item_id = $_POST['lp_item_id'];
$lp_item_view_id = $_POST['lp_item_view_id'];
$student_id = $_POST['student_id'];
- $totalWeighting = $_POST['totalWeighting'];
-
+ $totalWeighting = $_POST['totalWeighting'];
+
if ($lp_item_id == strval(intval($lp_item_id)) && $lp_item_view_id == strval(intval($lp_item_view_id)) && $student_id == strval(intval($student_id))) {
- $score = Database::escape_string($_POST['total_score']);
- $total_time = Database::escape_string($_POST['total_time']);
- $lp_item_id = Database::escape_string($lp_item_id);
- $lp_item_view_id = Database::escape_string($lp_item_view_id);
- $student_id = Database::escape_string($student_id);
- $totalWeighting = Database::escape_string($totalWeighting);
- // get max view_count from lp_item_view
- $sql = "SELECT MAX(view_count) FROM $TBL_LP_ITEM_VIEW WHERE lp_item_id = '".(int)$lp_item_view_id."'
- AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '".(int)$student_id."' and lp_id='".(int)$lp_item_id."')";
- $res_max_view_count = api_sql_query($sql,__FILE__,__LINE__);
- $row_max_view_count = Database::fetch_row($res_max_view_count);
- $max_view_count = (int)$row_max_view_count[0];
-
- // update score and total_time from last attempt when you qualify the exercise in Learning path detail
- $sql_update_score = "UPDATE $TBL_LP_ITEM_VIEW SET score = '".(float)$score."',total_time = '".(int)$total_time."' WHERE lp_item_id = '".(int)$lp_item_view_id."'
- AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '".(int)$student_id."' and lp_id='".(int)$lp_item_id."') AND view_count = '$max_view_count'";
- api_sql_query($sql_update_score,__FILE__,__LINE__);
-
- // update score and total_time from last attempt when you qualify the exercise in Learning path detail
- $sql_update_score = "UPDATE $TBL_LP_ITEM_VIEW SET score = '".(float)$score."',total_time = '".(int)$total_time."' WHERE lp_item_id = '".(int)$lp_item_view_id."'
- AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '".(int)$student_id."' and lp_id='".(int)$lp_item_id."') AND view_count = '$max_view_count'";
- api_sql_query($sql_update_score,__FILE__,__LINE__);
-
- // update max_score from a exercise in lp
- $sql_update_max_score = "UPDATE $TBL_LP_ITEM SET max_score = '".(float)$totalWeighting."' WHERE id = '".(int)$lp_item_view_id."'";
-
- api_sql_query($sql_update_max_score,__FILE__,__LINE__);
-
- }
+ $score = Database :: escape_string($_POST['total_score']);
+ $total_time = Database :: escape_string($_POST['total_time']);
+ $lp_item_id = Database :: escape_string($lp_item_id);
+ $lp_item_view_id = Database :: escape_string($lp_item_view_id);
+ $student_id = Database :: escape_string($student_id);
+ $totalWeighting = Database :: escape_string($totalWeighting);
+ // get max view_count from lp_item_view
+ $sql = "SELECT MAX(view_count) FROM $TBL_LP_ITEM_VIEW WHERE lp_item_id = '" . (int) $lp_item_view_id . "'
+ AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '" . (int) $student_id . "' and lp_id='" . (int) $lp_item_id . "')";
+ $res_max_view_count = api_sql_query($sql, __FILE__, __LINE__);
+ $row_max_view_count = Database :: fetch_row($res_max_view_count);
+ $max_view_count = (int) $row_max_view_count[0];
+
+ // update score and total_time from last attempt when you qualify the exercise in Learning path detail
+ $sql_update_score = "UPDATE $TBL_LP_ITEM_VIEW SET score = '" . (float) $score . "',total_time = '" . (int) $total_time . "' WHERE lp_item_id = '" . (int) $lp_item_view_id . "'
+ AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '" . (int) $student_id . "' and lp_id='" . (int) $lp_item_id . "') AND view_count = '$max_view_count'";
+ api_sql_query($sql_update_score, __FILE__, __LINE__);
+
+ // update score and total_time from last attempt when you qualify the exercise in Learning path detail
+ $sql_update_score = "UPDATE $TBL_LP_ITEM_VIEW SET score = '" . (float) $score . "',total_time = '" . (int) $total_time . "' WHERE lp_item_id = '" . (int) $lp_item_view_id . "'
+ AND lp_view_id = (SELECT id from $TBL_LP_VIEW WHERE user_id = '" . (int) $student_id . "' and lp_id='" . (int) $lp_item_id . "') AND view_count = '$max_view_count'";
+ api_sql_query($sql_update_score, __FILE__, __LINE__);
+
+ // update max_score from a exercise in lp
+ $sql_update_max_score = "UPDATE $TBL_LP_ITEM SET max_score = '" . (float) $totalWeighting . "' WHERE id = '" . (int) $lp_item_view_id . "'";
+
+ api_sql_query($sql_update_max_score, __FILE__, __LINE__);
+
+ }
}
- if ($origin=='tracking_course') {
+ if ($origin == 'tracking_course') {
//Redirect to the course detail in lp
- header('location: ../mySpace/lp_tracking.php?course='.Security::remove_XSS($_GET['course']).'&origin='.$origin.'&lp_id='.Security::remove_XSS($_POST['lp_item_id']).'&student_id='.Security::remove_XSS($_POST['student_id']));
+ header('location: ../mySpace/lp_tracking.php?course=' . Security :: remove_XSS($_GET['course']) . '&origin=' . $origin . '&lp_id=' . Security :: remove_XSS($_POST['lp_item_id']) . '&student_id=' . Security :: remove_XSS($_POST['student_id']));
} else {
//Redirect to the reporting
- header('location: ../mySpace/myStudents.php?origin='.$origin.'&student='.Security::remove_XSS($_GET['student']).'&details=true&course='.Security::remove_XSS($_GET['course']));
- }
+ header('location: ../mySpace/myStudents.php?origin=' . $origin . '&student=' . Security :: remove_XSS($_GET['student']) . '&details=true&course=' . Security :: remove_XSS($_GET['course']));
+ }
}
}
if ($_GET['gradebook'] && $_GET['exerciseId']) {
- $interbreadcrumb[]= array (
- 'url' => '../gradebook/'.$_SESSION['gradebook_dest'],
- 'name' => get_lang('Gradebook')
- );
+ $interbreadcrumb[] = array (
+ 'url' => '../gradebook/' . $_SESSION['gradebook_dest'],
+ 'name' => get_lang('Gradebook')
+ );
}
-if ($show!='result') {
- $nameTools=get_lang('Exercices');
+if ($show != 'result') {
+ $nameTools = get_lang('Exercices');
} else {
- if($is_allowedToEdit || $is_tutor) {
- $nameTools=get_lang('StudentScore');
- $interbreadcrumb[]=array("url" => "exercice.php","name" => get_lang('Exercices'));
+ if ($is_allowedToEdit || $is_tutor) {
+ $nameTools = get_lang('StudentScore');
+ $interbreadcrumb[] = array (
+ "url" => "exercice.php",
+ "name" => get_lang('Exercices')
+ );
} else {
- $nameTools=get_lang('YourScore');
- $interbreadcrumb[]=array("url" => "exercice.php","name" => get_lang('Exercices'));
+ $nameTools = get_lang('YourScore');
+ $interbreadcrumb[] = array (
+ "url" => "exercice.php",
+ "name" => get_lang('Exercices')
+ );
}
}
// need functions of statsutils lib to display previous exercices scores
-include_once(api_get_path(LIBRARY_PATH).'statsUtils.lib.inc.php');
+include_once (api_get_path(LIBRARY_PATH) . 'statsUtils.lib.inc.php');
-if ($is_allowedToEdit && !empty($choice) && $choice == 'exportqti2') {
- require_once('export/qti2/qti2_export.php');
- $export = export_exercise($exerciseId,true);
+if ($is_allowedToEdit && !empty ($choice) && $choice == 'exportqti2') {
+ require_once ('export/qti2/qti2_export.php');
+ $export = export_exercise($exerciseId, true);
- require_once(api_get_path(LIBRARY_PATH).'pclzip/pclzip.lib.php');
+ require_once (api_get_path(LIBRARY_PATH) . 'pclzip/pclzip.lib.php');
$garbage_path = api_get_path(GARBAGE_PATH);
$temp_dir_short = uniqid();
- $temp_zip_dir = $garbage_path."/".$temp_dir_short;
- if(!is_dir($temp_zip_dir)) mkdir($temp_zip_dir);
- $temp_zip_file = $temp_zip_dir."/".md5(time()).".zip";
- $temp_xml_file = $temp_zip_dir."/qti2export_".$exerciseId.'.xml';
- file_put_contents($temp_xml_file,$export);
- $zip_folder=new PclZip($temp_zip_file);
+ $temp_zip_dir = $garbage_path . "/" . $temp_dir_short;
+ if (!is_dir($temp_zip_dir))
+ mkdir($temp_zip_dir);
+ $temp_zip_file = $temp_zip_dir . "/" . md5(time()) . ".zip";
+ $temp_xml_file = $temp_zip_dir . "/qti2export_" . $exerciseId . '.xml';
+ file_put_contents($temp_xml_file, $export);
+ $zip_folder = new PclZip($temp_zip_file);
$zip_folder->add($temp_xml_file, PCLZIP_OPT_REMOVE_ALL_PATH);
- $name = 'qti2_export_'.$exerciseId.'.zip';
+ $name = 'qti2_export_' . $exerciseId . '.zip';
//DocumentManager::string_send_for_download($export,true,'qti2export_'.$exerciseId.'.xml');
- DocumentManager::file_send_for_download($temp_zip_file,true,$name);
+ DocumentManager :: file_send_for_download($temp_zip_file, true, $name);
unlink($temp_zip_file);
unlink($temp_xml_file);
rmdir($temp_zip_dir);
- exit(); //otherwise following clicks may become buggy
+ exit (); //otherwise following clicks may become buggy
}
-if (!empty($_POST['export_user_fields'])) {
+if (!empty ($_POST['export_user_fields'])) {
switch ($_POST['export_user_fields']) {
- case 'export_user_fields':
+ case 'export_user_fields' :
$_SESSION['export_user_fields'] = true;
break;
- case 'do_not_export_user_fields':
- default:
+ case 'do_not_export_user_fields' :
+ default :
$_SESSION['export_user_fields'] = false;
break;
}
}
-if (!empty($_POST['export_report']) && $_POST['export_report'] == 'export_report') {
- if(api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) {
+if (!empty ($_POST['export_report']) && $_POST['export_report'] == 'export_report') {
+ if (api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) {
$user_id = null;
- if(empty($_SESSION['export_user_fields'])) $_SESSION['export_user_fields'] = false;
- if(!$is_allowedToEdit and !$is_tutor) {
+ if (empty ($_SESSION['export_user_fields']))
+ $_SESSION['export_user_fields'] = false;
+ if (!$is_allowedToEdit and !$is_tutor) {
$user_id = api_get_user_id();
}
- require_once('exercise_result.class.php');
- switch($_POST['export_format']) {
- case 'xls':
+ require_once ('exercise_result.class.php');
+ switch ($_POST['export_format']) {
+ case 'xls' :
$export = new ExerciseResult();
$export->exportCompleteReportXLS($documentPath, $user_id, $_SESSION['export_user_fields']);
exit;
break;
- case 'csv':
- default:
+ case 'csv' :
+ default :
$export = new ExerciseResult();
$export->exportCompleteReportCSV($documentPath, $user_id, $_SESSION['export_user_fields']);
exit;
@@ -406,19 +424,21 @@ if (!empty($_POST['export_report']) && $_POST['export_report'] == 'export_report
if ($origin != 'learnpath') {
//so we are not in learnpath tool
- Display::display_header($nameTools,"Exercise");
- if(isset($_GET['message'])) {
- if (in_array($_GET['message'], array('ExerciseEdited'))) {
- Display::display_confirmation_message(get_lang($_GET['message']));
+ Display :: display_header($nameTools, "Exercise");
+ if (isset ($_GET['message'])) {
+ if (in_array($_GET['message'], array (
+ 'ExerciseEdited'
+ ))) {
+ Display :: display_confirmation_message(get_lang($_GET['message']));
}
}
} else {
- echo ' ';
+ echo ' ';
}
// used for stats
-include_once(api_get_path(LIBRARY_PATH).'events.lib.inc.php');
+include_once (api_get_path(LIBRARY_PATH) . 'events.lib.inc.php');
event_access_tool(TOOL_QUIZ);
@@ -426,537 +446,549 @@ event_access_tool(TOOL_QUIZ);
$fck_attribute['Width'] = '100%';
$fck_attribute['Height'] = '300';
$fck_attribute['ToolbarSet'] = 'Introduction';
-Display::display_introduction_section(TOOL_QUIZ);
+Display :: display_introduction_section(TOOL_QUIZ);
$fck_attribute = null; // Clearing this global variable immediatelly after it has been used.
// selects $limitExPage exercises at the same time
-$from=$page*$limitExPage;
-$sql="SELECT count(id) FROM $TBL_EXERCICES";
-$res = api_sql_query($sql,__FILE__,__LINE__);
-list($nbrexerc) = Database::fetch_array($res);
+$from = $page * $limitExPage;
+$sql = "SELECT count(id) FROM $TBL_EXERCICES";
+$res = api_sql_query($sql, __FILE__, __LINE__);
+list ($nbrexerc) = Database :: fetch_array($res);
-HotPotGCt($documentPath,1,$_user['user_id']);
+HotPotGCt($documentPath, 1, $_user['user_id']);
$tbl_grade_link = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_LINK);
// only for administrator
if ($is_allowedToEdit) {
- if (!empty($choice)) {
+ if (!empty ($choice)) {
// construction of Exercise
- $objExerciseTmp=new Exercise();
+ $objExerciseTmp = new Exercise();
if ($objExerciseTmp->read($exerciseId)) {
switch ($choice) {
- case 'delete': // deletes an exercise
- $objExerciseTmp->delete();
-
- //delete link of exercise of gradebook tool
- $sql='SELECT gl.id FROM '.$tbl_grade_link.' gl WHERE gl.type="1" AND gl.ref_id="'.$exerciseId.'";';
- $result=api_sql_query($sql,__FILE__,__LINE__);
- $row=Database::fetch_array($result,'ASSOC');
-
- $link= LinkFactory :: load($row['id']);
- if ($link[0] != null) {
- $link[0]->delete();
- }
- Display::display_confirmation_message(get_lang('ExerciseDeleted'));
- break;
- case 'enable': // enables an exercise
- $objExerciseTmp->enable();
- $objExerciseTmp->save();
- // "WHAT'S NEW" notification: update table item_property (previously last_tooledit)
- Display::display_confirmation_message(get_lang('VisibilityChanged'));
-
- break;
- case 'disable': // disables an exercise
- $objExerciseTmp->disable();
- $objExerciseTmp->save();
- Display::display_confirmation_message(get_lang('VisibilityChanged'));
- break;
+ case 'delete' : // deletes an exercise
+ $objExerciseTmp->delete();
+
+ //delete link of exercise of gradebook tool
+ $sql = 'SELECT gl.id FROM ' . $tbl_grade_link . ' gl WHERE gl.type="1" AND gl.ref_id="' . $exerciseId . '";';
+ $result = api_sql_query($sql, __FILE__, __LINE__);
+ $row = Database :: fetch_array($result, 'ASSOC');
+
+ $link = LinkFactory :: load($row['id']);
+ if ($link[0] != null) {
+ $link[0]->delete();
+ }
+ Display :: display_confirmation_message(get_lang('ExerciseDeleted'));
+ break;
+ case 'enable' : // enables an exercise
+ $objExerciseTmp->enable();
+ $objExerciseTmp->save();
+ // "WHAT'S NEW" notification: update table item_property (previously last_tooledit)
+ Display :: display_confirmation_message(get_lang('VisibilityChanged'));
+
+ break;
+ case 'disable' : // disables an exercise
+ $objExerciseTmp->disable();
+ $objExerciseTmp->save();
+ Display :: display_confirmation_message(get_lang('VisibilityChanged'));
+ break;
case 'disable_results' : //disable the results for the learners
- $objExerciseTmp->disable_results();
- $objExerciseTmp->save();
- Display::display_confirmation_message(get_lang('ResultsDisabled'));
- break;
+ $objExerciseTmp->disable_results();
+ $objExerciseTmp->save();
+ Display :: display_confirmation_message(get_lang('ResultsDisabled'));
+ break;
case 'enable_results' : //disable the results for the learners
- $objExerciseTmp->enable_results();
- $objExerciseTmp->save();
- Display::display_confirmation_message(get_lang('ResultsEnabled'));
- break;
+ $objExerciseTmp->enable_results();
+ $objExerciseTmp->save();
+ Display :: display_confirmation_message(get_lang('ResultsEnabled'));
+ break;
}
}
// destruction of Exercise
- unset($objExerciseTmp);
+ unset ($objExerciseTmp);
}
- if (!empty($hpchoice)) {
- switch($hpchoice) {
- case 'delete': // deletes an exercise
- $imgparams = array();
- $imgcount = 0;
- GetImgParams($file,$documentPath,$imgparams,$imgcount);
- $fld = GetFolderName($file);
- for($i=0;$i < $imgcount;$i++)
- {
- my_delete($documentPath.$uploadPath."/".$fld."/".$imgparams[$i]);
- update_db_info("delete", $uploadPath."/".$fld."/".$imgparams[$i]);
- }
-
- if ( my_delete($documentPath.$file))
- {
- update_db_info("delete", $file);
- }
- my_delete($documentPath.$uploadPath."/".$fld."/");
- break;
- case 'enable': // enables an exercise
- $newVisibilityStatus = "1"; //"visible"
- $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='".Database::escape_string($file)."'";
- $res = api_sql_query($query,__FILE__,__LINE__);
- $row = Database::fetch_array($res, 'ASSOC');
- api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'visible', $_user['user_id']);
- //$dialogBox = get_lang('ViMod');
-
- break;
- case 'disable': // disables an exercise
- $newVisibilityStatus = "0"; //"invisible"
- $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='".Database::escape_string($file)."'";
- $res = api_sql_query($query,__FILE__,__LINE__);
- $row = Database::fetch_array($res, 'ASSOC');
- api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'invisible', $_user['user_id']);
- #$query = "UPDATE $TBL_DOCUMENT SET visibility='$newVisibilityStatus' WHERE path=\"".$file."\""; //added by Toon
- #api_sql_query($query,__FILE__,__LINE__);
- //$dialogBox = get_lang('ViMod');
- break;
- default:
- break;
- }
+ if (!empty ($hpchoice)) {
+ switch ($hpchoice) {
+ case 'delete' : // deletes an exercise
+ $imgparams = array ();
+ $imgcount = 0;
+ GetImgParams($file, $documentPath, $imgparams, $imgcount);
+ $fld = GetFolderName($file);
+ for ($i = 0; $i < $imgcount; $i++) {
+ my_delete($documentPath . $uploadPath . "/" . $fld . "/" . $imgparams[$i]);
+ update_db_info("delete", $uploadPath . "/" . $fld . "/" . $imgparams[$i]);
+ }
+
+ if (my_delete($documentPath . $file)) {
+ update_db_info("delete", $file);
+ }
+ my_delete($documentPath . $uploadPath . "/" . $fld . "/");
+ break;
+ case 'enable' : // enables an exercise
+ $newVisibilityStatus = "1"; //"visible"
+ $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='" . Database :: escape_string($file) . "'";
+ $res = api_sql_query($query, __FILE__, __LINE__);
+ $row = Database :: fetch_array($res, 'ASSOC');
+ api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'visible', $_user['user_id']);
+ //$dialogBox = get_lang('ViMod');
+
+ break;
+ case 'disable' : // disables an exercise
+ $newVisibilityStatus = "0"; //"invisible"
+ $query = "SELECT id FROM $TBL_DOCUMENT WHERE path='" . Database :: escape_string($file) . "'";
+ $res = api_sql_query($query, __FILE__, __LINE__);
+ $row = Database :: fetch_array($res, 'ASSOC');
+ api_item_property_update($_course, TOOL_DOCUMENT, $row['id'], 'invisible', $_user['user_id']);
+ #$query = "UPDATE $TBL_DOCUMENT SET visibility='$newVisibilityStatus' WHERE path=\"".$file."\""; //added by Toon
+ #api_sql_query($query,__FILE__,__LINE__);
+ //$dialogBox = get_lang('ViMod');
+ break;
+ default :
+ break;
+ }
}
if ($show == 'test') {
- $sql="SELECT id,title,type,active,description, results_disabled FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1);
- $result=api_sql_query($sql,__FILE__,__LINE__);
+ $sql = "SELECT id,title,type,active,description, results_disabled FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT " . (int) $from . "," . (int) ($limitExPage +1);
+ $result = api_sql_query($sql, __FILE__, __LINE__);
}
-
-} elseif($show == 'test') {// only for students //fin
- $sql="SELECT id,title,type,description, results_disabled FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1);
- $result=api_sql_query($sql,__FILE__,__LINE__);
-}
+}
+elseif ($show == 'test') { // only for students //fin
+ $sql = "SELECT id,title,type,description, results_disabled FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT " . (int) $from . "," . (int) ($limitExPage +1);
+ $result = api_sql_query($sql, __FILE__, __LINE__);
+}
// the actions
echo '';
- // display the next and previous link if needed
- $from=$page*$limitExPage;
- $sql="SELECT count(id) FROM $TBL_EXERCICES";
- $res = api_sql_query($sql,__FILE__,__LINE__);
- list($nbrexerc) = Database::fetch_array($res);
- HotPotGCt($documentPath,1,$_user['user_id']);
- // only for administrator
- if($is_allowedToEdit) {
- if ($show == 'test') {
- $sql="SELECT id,title,type,active,description, results_disabled FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1);
- $result=api_sql_query($sql,__FILE__,__LINE__);
- }
- } elseif($show == 'test') { // only for students
- $sql="SELECT id,title,type,description, results_disabled FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT ".(int)$from.",".(int)($limitExPage+1);
- $result=api_sql_query($sql,__FILE__,__LINE__);
+// display the next and previous link if needed
+$from = $page * $limitExPage;
+$sql = "SELECT count(id) FROM $TBL_EXERCICES";
+$res = api_sql_query($sql, __FILE__, __LINE__);
+list ($nbrexerc) = Database :: fetch_array($res);
+HotPotGCt($documentPath, 1, $_user['user_id']);
+// only for administrator
+if ($is_allowedToEdit) {
+ if ($show == 'test') {
+ $sql = "SELECT id,title,type,active,description, results_disabled FROM $TBL_EXERCICES WHERE active<>'-1' ORDER BY title LIMIT " . (int) $from . "," . (int) ($limitExPage +1);
+ $result = api_sql_query($sql, __FILE__, __LINE__);
}
- if($show == 'test')
- {
- $nbrExercises=Database::num_rows($result);
-
- //get HotPotatoes files (active and inactive)
- $res = api_sql_query ("SELECT *
- FROM $TBL_DOCUMENT
- WHERE
- path LIKE '".Database::escape_string($uploadPath)."/%/%'",__FILE__,__LINE__);
- $nbrTests = Database::num_rows($res);
- $res = api_sql_query ("SELECT *
- FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
- WHERE d.id = ip.ref
- AND ip.tool = '".TOOL_DOCUMENT."'
- AND d.path LIKE '".Database::escape_string($uploadPath)."/%/%'
- AND ip.visibility='1'", __FILE__,__LINE__);
- $nbrActiveTests = Database::num_rows($res);
-
- if($is_allowedToEdit)
- {//if user is allowed to edit, also show hidden HP tests
- $nbrHpTests = $nbrTests;
- }
- else
- {
- $nbrHpTests = $nbrActiveTests;
- }
- $nbrNextTests = $nbrexerc-$nbrHpTests-(($page*$limitExPage));
-
+}
+elseif ($show == 'test') { // only for students
+ $sql = "SELECT id,title,type,description, results_disabled FROM $TBL_EXERCICES WHERE active='1' ORDER BY title LIMIT " . (int) $from . "," . (int) ($limitExPage +1);
+ $result = api_sql_query($sql, __FILE__, __LINE__);
+}
+if ($show == 'test') {
+ $nbrExercises = Database :: num_rows($result);
+
+ //get HotPotatoes files (active and inactive)
+ $res = api_sql_query("SELECT *
+ FROM $TBL_DOCUMENT
+ WHERE
+ path LIKE '" . Database :: escape_string($uploadPath) . "/%/%'", __FILE__, __LINE__);
+ $nbrTests = Database :: num_rows($res);
+ $res = api_sql_query("SELECT *
+ FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
+ WHERE d.id = ip.ref
+ AND ip.tool = '" . TOOL_DOCUMENT . "'
+ AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%'
+ AND ip.visibility='1'", __FILE__, __LINE__);
+ $nbrActiveTests = Database :: num_rows($res);
+
+ if ($is_allowedToEdit) {
+ //if user is allowed to edit, also show hidden HP tests
+ $nbrHpTests = $nbrTests;
+ } else {
+ $nbrHpTests = $nbrActiveTests;
+ }
+ $nbrNextTests = $nbrexerc - $nbrHpTests - (($page * $limitExPage));
- echo '
';
- //show pages navigation link for previous page
- if($page)
- {
- echo "".Display::return_icon('previous.gif').get_lang("PreviousPage")." | ";
- }
- elseif($nbrExercises+$nbrNextTests > $limitExPage)
- {
- echo Display::return_icon('previous.gif').get_lang('PreviousPage')." | ";
- }
-
- //show pages navigation link for previous page
- if($nbrExercises+$nbrNextTests > $limitExPage)
- {
- echo "".get_lang("NextPage").Display::return_icon('next.gif')." ";
- }
- elseif($page)
- {
- echo get_lang("NextPage") . Display::return_icon('next.gif');
- }
- echo ' ';
+ echo '
';
+ //show pages navigation link for previous page
+ if ($page) {
+ echo "" . Display :: return_icon('previous.gif') . get_lang("PreviousPage") . " | ";
+ }
+ elseif ($nbrExercises + $nbrNextTests > $limitExPage) {
+ echo Display :: return_icon('previous.gif') . get_lang('PreviousPage') . " | ";
}
+ //show pages navigation link for previous page
+ if ($nbrExercises + $nbrNextTests > $limitExPage) {
+ echo "" . get_lang("NextPage") . Display :: return_icon('next.gif') . " ";
+ }
+ elseif ($page) {
+ echo get_lang("NextPage") . Display :: return_icon('next.gif');
+ }
+ echo ' ';
+}
if ($_configuration['tracking_enabled']) {
- if ($show == 'result') {
- /*if (!function_exists('make_select'))
+ if ($show == 'result') {
+ /*if (!function_exists('make_select'))
+ {
+ function make_select($name,$values,$checked='')
{
- function make_select($name,$values,$checked='')
- {
- $output .= '
';
- foreach($values as $key => $value)
- {
- //$output .= ''.$value.' ';
- }
- $output .= ' ';
- return $output;
- }
- }*/
+ $output .= '
';
+ foreach($values as $key => $value)
+ {
+ //$output .= ''.$value.' ';
+ }
+ $output .= ' ';
+ return $output;
+ }
+ }*/
- /*if (!function_exists('make_select_users'))
+ /*if (!function_exists('make_select_users'))
+ {
+ function make_select_users($name,$values,$checked='')
{
- function make_select_users($name,$values,$checked='')
- {
- $output .= '
';
- $output .= ''.get_lang('EveryBody').' ';
- foreach($values as $key => $value)
- {
- $output .= ''.$value.' ';
- }
- $output .= ' ';
- return $output;
- }
- }*/
+ $output .= '
';
+ $output .= ''.get_lang('EveryBody').' ';
+ foreach($values as $key => $value)
+ {
+ $output .= ''.$value.' ';
+ }
+ $output .= ' ';
+ return $output;
+ }
+ }*/
- if (api_is_allowed_to_edit()) {
- if (!$_REQUEST['filter']) {
+ if (api_is_allowed_to_edit()) {
+ if (!$_REQUEST['filter']) {
+ $filter_by_not_revised = true;
+ $filter = 1;
+ }
+ $filter = (int) $_REQUEST['filter'];
+
+ switch ($filter) {
+ case 1 :
$filter_by_not_revised = true;
- $filter=1;
- }
- $filter = (int)$_REQUEST['filter'];
-
- switch($filter) {
- case 1:
- $filter_by_not_revised = true;
- break;
- case 2:
- $filter_by_revised = true;
- break;
- default:
- null;
- }
- if($_REQUEST['filter']=='1' or !isset($_REQUEST['filter'])) {
- $view_result = '
'.Display::display_icon('checkbox_on.gif', get_lang('ShowCorrectedOnly')).get_lang('ShowCorrectedOnly').' ';
- } else {
- $view_result = '
'.Display::display_icon('checkbox_off.gif', get_lang('ShowUnCorrectedOnly')).get_lang('ShowUnCorrectedOnly').' ';
- }
- //$form_filter = '
';
- echo $view_result;
+ break;
+ case 2 :
+ $filter_by_revised = true;
+ break;
+ default :
+ null;
}
- }
- /*if (api_is_allowed_to_edit())
- {
- $user_count = count($user_list_name);
- if ($user_count >0 ) {
- $form_filter = '
';
- echo $form_filter;
+ if ($_REQUEST['filter'] == '1' or !isset ($_REQUEST['filter'])) {
+ $view_result = '
' . Display :: display_icon('checkbox_on.gif', get_lang('ShowCorrectedOnly')) . get_lang('ShowCorrectedOnly') . ' ';
+ } else {
+ $view_result = '
' . Display :: display_icon('checkbox_off.gif', get_lang('ShowUnCorrectedOnly')) . get_lang('ShowUnCorrectedOnly') . ' ';
}
- } */
- }
-
-
-
- if (($is_allowedToEdit) and ($origin != 'learnpath'))
+ //$form_filter = '
';
+ echo $view_result;
+ }
+ }
+ /*if (api_is_allowed_to_edit())
{
- if ($_GET['show']!='result') {
- echo '
'.Display::return_icon('new_test.gif',get_lang('NewEx')).get_lang('NewEx').' ';
- echo '
'.Display::return_icon('jqz.gif',get_lang('ImportHotPotatoesQuiz')).get_lang('ImportHotPotatoesQuiz').' ';
- echo '
'.Display::return_icon('show_test_results.gif',get_lang('Results')).get_lang('Results').' ';
+ $user_count = count($user_list_name);
+ if ($user_count >0 ) {
+ $form_filter = '
';
+ echo $form_filter;
}
+ } */
+}
- // the actions for the statistics
- if($show == 'result') {
- // the form
- if(api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) {
- if($_SESSION['export_user_fields']==true) {
- $alt = get_lang('ExportWithUserFields');
- $extra_user_fields = '
';
- } else {
- $alt = get_lang('ExportWithoutUserFields');
- $extra_user_fields = '
';
- }
- //echo '
'.Display::return_icon('excel.gif',get_lang('ExportAsCSV')).get_lang('ExportAsCSV').' ';
- echo '
'.Display::return_icon('excel.gif',get_lang('ExportAsXLS')).get_lang('ExportAsXLS').' ';
- //echo '
'.Display::return_icon('synthese_view.gif',$alt).$alt.' ';
- echo '
'.Display::return_icon('quiz.gif',get_lang('BackToExercisesList')).get_lang('BackToExercisesList').' ';
- echo '
';
- echo '
';
- //echo '
';
+if (($is_allowedToEdit) and ($origin != 'learnpath')) {
+ if ($_GET['show'] != 'result') {
+ echo '
' . Display :: return_icon('new_test.gif', get_lang('NewEx')) . get_lang('NewEx') . ' ';
+ echo '
' . Display :: return_icon('jqz.gif', get_lang('ImportHotPotatoesQuiz')) . get_lang('ImportHotPotatoesQuiz') . ' ';
+ echo '
' . Display :: return_icon('show_test_results.gif', get_lang('Results')) . get_lang('Results') . ' ';
+ }
+
+ // the actions for the statistics
+ if ($show == 'result') {
+ // the form
+ if (api_is_platform_admin() || api_is_course_admin() || api_is_course_tutor() || api_is_course_coach()) {
+ if ($_SESSION['export_user_fields'] == true) {
+ $alt = get_lang('ExportWithUserFields');
+ $extra_user_fields = '
';
+ } else {
+ $alt = get_lang('ExportWithoutUserFields');
+ $extra_user_fields = '
';
}
- }
- } else {
- //the student view
- if($show == 'result') {
- echo '
'.Display::return_icon('quiz.gif',get_lang('BackToExercisesList')).get_lang('BackToExercisesList').' ';
- } else {
- echo '
'.Display::return_icon('show_test_results.gif',get_lang('Results')).get_lang('Results').' ';
+ //echo '
'.Display::return_icon('excel.gif',get_lang('ExportAsCSV')).get_lang('ExportAsCSV').' ';
+ echo '
' . Display :: return_icon('excel.gif', get_lang('ExportAsXLS')) . get_lang('ExportAsXLS') . ' ';
+ //echo '
'.Display::return_icon('synthese_view.gif',$alt).$alt.' ';
+ echo '
' . Display :: return_icon('quiz.gif', get_lang('BackToExercisesList')) . get_lang('BackToExercisesList') . ' ';
+ echo '
';
+ echo '
';
+ //echo '
';
}
}
-
-
-echo '
'; // closing the actions div
+} else {
+ //the student view
+ if ($show == 'result') {
+ echo '' . Display :: return_icon('quiz.gif', get_lang('BackToExercisesList')) . get_lang('BackToExercisesList') . ' ';
+ } else {
+ echo '' . Display :: return_icon('show_test_results.gif', get_lang('Results')) . get_lang('Results') . ' ';
+ }
+}
+echo ''; // closing the actions div
if ($show == 'test') {
-
?>
+?>
-
+
+
+
+?>
+ if (!($nbrExercises + $nbrHpTests)) {
+?>
>
'."\n";
- ?>
+ $i = 1;
+ // while list exercises
+ if ($origin != 'learnpath') {
+ //avoid sending empty parameters
+ $myorigin = (empty ($origin) ? '' : '&origin=' . $origin);
+ $mylpid = (empty ($learnpath_id) ? '' : '&learnpath_id=' . $learnpath_id);
+ $mylpitemid = (empty ($learnpath_item_id) ? '' : '&learnpath_item_id=' . $learnpath_item_id);
+ while ($row = Database :: fetch_array($result)) {
+ if ($i % 2 == 0)
+ $s_class = "row_odd";
+ else
+ $s_class = "row_even";
+ // prof only
+ if ($is_allowedToEdit) {
+ echo '' . "\n";
+?>
>
0) {
- echo $row_random['random'].' '.strtolower(get_lang(($row_random['random']>1?'Questions':'Question'))).' ';
- } else {
- echo $rowi.' '.strtolower(get_lang(($rowi>1?'Questions':'Question'))).'';
- }
- //echo ' ';
- ?>
+ $exid = $row['id'];
+ //count number exercice - teacher
+ $sqlquery = "SELECT count(*) FROM $TBL_EXERCICE_QUESTION WHERE exercice_id = '" . Database :: escape_string($exid) . "'";
+ $sqlresult = api_sql_query($sqlquery);
+ $rowi = Database :: result($sqlresult, 0);
+
+ //count number random exercice - teacher
+ $sql_random_query = 'SELECT type,random,active,results_disabled,max_attempt FROM ' . $TBL_EXERCICES . ' WHERE id="' . Database :: escape_string($exid) . '" ';
+ $rs_random = api_sql_query($sql_random_query, __FILE__, __LINE__);
+ $row_random = Database :: fetch_array($rs_random);
+ if ($row_random['random'] > 0) {
+ echo $row_random['random'] . ' ' . strtolower(get_lang(($row_random['random'] > 1 ? 'Questions' : 'Question'))) . '';
+ } else {
+ echo $rowi . ' ' . strtolower(get_lang(($rowi > 1 ? 'Questions' : 'Question'))) . '';
+ }
+
+ //echo ' ';
+?>
- ';
- } else {
- //echo ' ';
- }
- ?>
-
+ ';
+ } else {
+ //echo ' ';
+ }
+?>
+
+
+
+
+
+
+
')) return false;">
-
+
+
+ } else {
+ // else if not active
+?>
";
- echo " \n";
- } else {// student only
- ?>
+
+ }
+ echo "";
+ echo "\n";
+ } else { // student only
+?>
0) {
- echo $row_random['random'].' '.strtolower(get_lang(($row_random['random']>1?'Questions':'Question')));
-} else {
-//show results student
-echo $rowi.' '.strtolower(get_lang(($rowi>1?'Questions':'Question')));
-}
+
+
+ $exid = $row['id'];
+ //count number exercise questions
+ $sqlquery = "SELECT count(*) FROM $TBL_EXERCICE_QUESTION WHERE exercice_id = '" . Database :: escape_string($exid) . "'";
+ $sqlresult = api_sql_query($sqlquery);
+ $rowi = Database :: result($sqlresult, 0);
+ //count number random exercice
+ $sql_random_query = 'SELECT type,random,active,results_disabled,max_attempt FROM ' . $TBL_EXERCICES . ' WHERE id="' . Database :: escape_string($exid) . '" ';
+ $rs_random = api_sql_query($sql_random_query, __FILE__, __LINE__);
+ $row_random = Database :: fetch_array($rs_random);
+ if ($row_random['random'] > 0) {
+ echo $row_random['random'] . ' ' . strtolower(get_lang(($row_random['random'] > 1 ? 'Questions' : 'Question')));
+ } else {
+ //show results student
+ echo $rowi . ' ' . strtolower(get_lang(($rowi > 1 ? 'Questions' : 'Question')));
+ }
?>
'incomplete' AND orig_lp_id = 0 AND orig_lp_item_id = 0 AND session_id = '".api_get_session_id()."'
- ORDER BY exe_id DESC";
- $qryres = api_sql_query($qry);
- $num = Database::num_rows($qryres);
-
- //hide the results
- $my_result_disabled = $row['results_disabled'];
- if ($my_result_disabled==0) {
- if ($num>0) {
- $row = Database::fetch_array($qryres);
- $percentage = 0;
- if($row['exe_weighting'] != 0) {
- $percentage = ($row['exe_result']/$row['exe_weighting'])*100;
- }
- echo get_lang('Attempted').' ('.get_lang('Score').': ';
- printf("%1.2f\n",$percentage);
- echo " %)";
- } else {
- echo get_lang('NotAttempted');
- }
- }
- else {
- echo get_lang('CantShowResults');
- }
- ?>
+
+ $eid = $row['id'];
+ $uid = api_get_user_id();
+ //this query might be improved later on by ordering by the new "tms" field rather than by exe_id
+ $qry = "SELECT * FROM $TBL_TRACK_EXERCICES
+ WHERE exe_exo_id = '" . Database :: escape_string($eid) . "' and exe_user_id = '" . Database :: escape_string($uid) . "' AND exe_cours_id = '" . api_get_course_id() . "' AND status <>'incomplete' AND orig_lp_id = 0 AND orig_lp_item_id = 0 AND session_id = '" . api_get_session_id() . "'
+ ORDER BY exe_id DESC";
+ $qryres = api_sql_query($qry);
+ $num = Database :: num_rows($qryres);
+
+ //hide the results
+ $my_result_disabled = $row['results_disabled'];
+ if ($my_result_disabled == 0) {
+ if ($num > 0) {
+ $row = Database :: fetch_array($qryres);
+ $percentage = 0;
+ if ($row['exe_weighting'] != 0) {
+ $percentage = ($row['exe_result'] / $row['exe_weighting']) * 100;
+ }
+ echo get_lang('Attempted') . ' (' . get_lang('Score') . ': ';
+ printf("%1.2f\n", $percentage);
+ echo " %)";
+ } else {
+ echo get_lang('NotAttempted');
+ }
+ } else {
+ echo get_lang('CantShowResults');
+ }
+?>
$nbrexerc) {
- if ($from>$nbrexerc) {
+ if (($from + $limitExPage -1) > $nbrexerc) {
+ if ($from > $nbrexerc) {
$from = $from - $nbrexerc;
- $to = $limitExPage;
+ $to = $limitExPage;
} else {
- $to = $limitExPage-($nbrexerc-$from);
+ $to = $limitExPage - ($nbrexerc - $from);
$from = 0;
}
} else {
$to = $limitExPage;
}
- if($is_allowedToEdit) {
+ if ($is_allowedToEdit) {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
- FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
- WHERE d.id = ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND
- (d.path LIKE '%htm%')
- AND d.path LIKE '".Database::escape_string($uploadPath)."/%/%' LIMIT ".(int)$from.",".(int)$to; // only .htm or .html files listed
+ FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
+ WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND
+ (d.path LIKE '%htm%')
+ AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' LIMIT " . (int) $from . "," . (int) $to; // only .htm or .html files listed
} else {
$sql = "SELECT d.path as path, d.comment as comment, ip.visibility as visibility
- FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
- WHERE d.id = ip.ref AND ip.tool = '".TOOL_DOCUMENT."' AND
- (d.path LIKE '%htm%')
- AND d.path LIKE '".Database::escape_string($uploadPath)."/%/%' AND ip.visibility='1' LIMIT ".(int)$from.",".(int)$to;
+ FROM $TBL_DOCUMENT d, $TBL_ITEM_PROPERTY ip
+ WHERE d.id = ip.ref AND ip.tool = '" . TOOL_DOCUMENT . "' AND
+ (d.path LIKE '%htm%')
+ AND d.path LIKE '" . Database :: escape_string($uploadPath) . "/%/%' AND ip.visibility='1' LIMIT " . (int) $from . "," . (int) $to;
}
- $result = api_sql_query ($sql,__FILE__,__LINE__);
+ $result = api_sql_query($sql, __FILE__, __LINE__);
- while ($row = Database::fetch_array($result, 'ASSOC')) {
- $attribute['path' ][] = $row['path' ];
+ while ($row = Database :: fetch_array($result, 'ASSOC')) {
+ $attribute['path'][] = $row['path'];
$attribute['visibility'][] = $row['visibility'];
- $attribute['comment' ][] = $row['comment' ];
+ $attribute['comment'][] = $row['comment'];
}
$nbrActiveTests = 0;
if (is_array($attribute['path'])) {
- while (list($key,$path) = each($attribute['path'])) {
- list($a,$vis)=each($attribute['visibility']);
- if (strcmp($vis,"1")==0) { $active=1;
+ while (list ($key, $path) = each($attribute['path'])) {
+ list ($a, $vis) = each($attribute['visibility']);
+ if (strcmp($vis, "1") == 0) {
+ $active = 1;
} else {
- $active=0;
+ $active = 0;
}
echo "\n";
- $title = GetQuizName($path,$documentPath);
- if ($title =='') {
+ $title = GetQuizName($path, $documentPath);
+ if ($title == '') {
$title = GetFileName($path);
}
// prof only
- if($is_allowedToEdit) {
+ if ($is_allowedToEdit) {
/************/
- ?>
+?>
@@ -967,24 +999,29 @@ $i++;
')) return false;">
+ if ($active) {
+ $nbrActiveTests = $nbrActiveTests +1;
+?>
+
+ } else { // else if not active
+?>
';
- /****************/
- ?>
-
+ /****************/
+?>
+
@@ -993,28 +1030,30 @@ $i++;
+?>
+?>
+if ($_configuration['tracking_enabled'] && ($show == 'result')) {
+?>
@@ -1036,223 +1074,230 @@ if ($_configuration['tracking_enabled'] && ($show == 'result') )
1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
- AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
-
- $hpsql="SELECT CONCAT(tu.lastname,' ',tu.firstname), tth.exe_name,
- tth.exe_result , tth.exe_weighting, UNIX_TIMESTAMP(tth.exe_date)
- FROM $TBL_TRACK_HOTPOTATOES tth, $TBL_USER tu
- WHERE tu.user_id=tth.exe_user_id AND tth.exe_cours_id = '".Database::escape_string($_cid)." $user_id_and '
- ORDER BY tth.exe_cours_id ASC, tth.exe_date DESC";
-
- } else {
- // get only this user's results
- $user_id_and = ' AND te.exe_user_id = ' . Database::escape_string ( api_get_user_id() ).' ';
-
- $sql="SELECT CONCAT(lastname,' ',firstname) as users, ce.title, te.exe_result ,
- te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, email, UNIX_TIMESTAMP(te.start_date), steps_counter,cuser.user_id,te.exe_duration, ce.results_disabled
- FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user,$tbl_course_rel_user AS cuser
- WHERE user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='".Database::escape_string($_cid)."'
- AND cuser.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
- AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
-
- $hpsql="SELECT '',exe_name, exe_result , exe_weighting, UNIX_TIMESTAMP(exe_date)
- FROM $TBL_TRACK_HOTPOTATOES
- WHERE exe_user_id = '".$_user['user_id']."' AND exe_cours_id = '".Database::escape_string($_cid)."'
- ORDER BY exe_cours_id ASC, exe_date DESC";
+ if ($is_allowedToEdit || $is_tutor) {
+ $user_id_and = '';
+ if (!empty ($_POST['filter_by_user'])) {
+ if ($_POST['filter_by_user'] == 'all') {
+ $user_id_and = " AND user_id like '%'";
+ } else {
+ $user_id_and = " AND user_id = '" . Database :: escape_string((int) $_POST['filter_by_user']) . "' ";
+ }
+ }
+ if ($_GET['gradebook'] == 'view') {
+ $exercise_where_query = 'te.exe_exo_id =ce.id AND ';
}
- $results=getManyResultsXCol($sql,12);
- $hpresults=getManyResultsXCol($hpsql,5);
- $NoTestRes = 0;
- $NoHPTestRes = 0;
- //Print the results of tests
- $lang_nostartdate = get_lang('NoStartDate').' / ';
-
- if (is_array($results)) {
- $users_array_id = array();
- if ($_GET['gradebook']=='view') {
- $filter_by_no_revised = true;
- $from_gradebook = true;
- }
- $sizeof = sizeof($results);
- $user_list_name = $user_list_id = array();
+ $sql = "SELECT CONCAT(lastname,' ',firstname) as users, ce.title, te.exe_result ,
+ te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, email, UNIX_TIMESTAMP(te.start_date), steps_counter,cuser.user_id,te.exe_duration
+ FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user,$tbl_course_rel_user AS cuser
+ WHERE user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($_cid) . "'
+ AND cuser.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
+ AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
- for ($i = 0; $i < $sizeof; $i++) {
- $revised = false;
- $sql_exe='SELECT exe_id FROM '.Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING).'
- WHERE author != '."''".' AND exe_id = '."'".Database::escape_string($results[$i][5])."'".' LIMIT 1';
- $query = api_sql_query($sql_exe,__FILE__,__LINE__);
+ $hpsql = "SELECT CONCAT(tu.lastname,' ',tu.firstname), tth.exe_name,
+ tth.exe_result , tth.exe_weighting, UNIX_TIMESTAMP(tth.exe_date)
+ FROM $TBL_TRACK_HOTPOTATOES tth, $TBL_USER tu
+ WHERE tu.user_id=tth.exe_user_id AND tth.exe_cours_id = '" . Database :: escape_string($_cid) . " $user_id_and '
+ ORDER BY tth.exe_cours_id ASC, tth.exe_date DESC";
- if ( Database::num_rows($query) > 0) {
- $revised = true;
- }
- if ($filter_by_not_revised && $revised == true) {
+ } else {
+ // get only this user's results
+ $user_id_and = ' AND te.exe_user_id = ' . Database :: escape_string(api_get_user_id()) . ' ';
+
+ $sql = "SELECT CONCAT(lastname,' ',firstname) as users, ce.title, te.exe_result ,
+ te.exe_weighting, UNIX_TIMESTAMP(te.exe_date), te.exe_id, email, UNIX_TIMESTAMP(te.start_date), steps_counter,cuser.user_id,te.exe_duration, ce.results_disabled
+ FROM $TBL_EXERCICES AS ce , $TBL_TRACK_EXERCICES AS te, $TBL_USER AS user,$tbl_course_rel_user AS cuser
+ WHERE user.user_id=cuser.user_id AND te.exe_exo_id = ce.id AND te.status != 'incomplete' AND cuser.user_id=te.exe_user_id AND te.exe_cours_id='" . Database :: escape_string($_cid) . "'
+ AND cuser.status<>1 $user_id_and $session_id_and AND ce.active <>-1 AND orig_lp_id = 0 AND orig_lp_item_id = 0
+ AND cuser.course_code=te.exe_cours_id ORDER BY users, te.exe_cours_id ASC, ce.title ASC, te.exe_date DESC";
+
+ $hpsql = "SELECT '',exe_name, exe_result , exe_weighting, UNIX_TIMESTAMP(exe_date)
+ FROM $TBL_TRACK_HOTPOTATOES
+ WHERE exe_user_id = '" . $_user['user_id'] . "' AND exe_cours_id = '" . Database :: escape_string($_cid) . "'
+ ORDER BY exe_cours_id ASC, exe_date DESC";
+ }
+ $results = getManyResultsXCol($sql, 12);
+ $hpresults = getManyResultsXCol($hpsql, 5);
+
+ $NoTestRes = 0;
+ $NoHPTestRes = 0;
+ //Print the results of tests
+ $lang_nostartdate = get_lang('NoStartDate') . ' / ';
+
+ if (is_array($results)) {
+ $users_array_id = array ();
+ if ($_GET['gradebook'] == 'view') {
+ $filter_by_no_revised = true;
+ $from_gradebook = true;
+ }
+ $sizeof = sizeof($results);
+ $user_list_name = $user_list_id = array ();
+
+ for ($i = 0; $i < $sizeof; $i++) {
+ $revised = false;
+ $sql_exe = 'SELECT exe_id FROM ' . Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT_RECORDING) . '
+ WHERE author != ' . "''" . ' AND exe_id = ' . "'" . Database :: escape_string($results[$i][5]) . "'" . ' LIMIT 1';
+ $query = api_sql_query($sql_exe, __FILE__, __LINE__);
+
+ if (Database :: num_rows($query) > 0) {
+ $revised = true;
+ }
+ if ($filter_by_not_revised && $revised == true) {
+ continue;
+ }
+ if ($filter_by_revised && $revised == false) {
+ continue;
+ }
+ if ($from_gradebook && ($is_allowedToEdit || $is_tutor)) {
+ if (in_array($results[$i][1] . $results[$i][0], $users_array_id)) {
continue;
}
- if($filter_by_revised && $revised == false) {
- continue;
+ $users_array_id[] = $results[$i][1] . $results[$i][0];
+ }
+
+ $user_list_name[] = $results[$i][0];
+ $user_list_id[] = $results[$i][9];
+ $id = $results[$i][5];
+ $mailid = $results[$i][6];
+ $user = $results[$i][0];
+ $test = $results[$i][1];
+ $dt = strftime($dateTimeFormatLong, $results[$i][4]);
+ $res = $results[$i][2];
+
+ $duration = intval($results[$i][10]);
+ // we filter the results if we have the permission to
+ if (isset ($results[$i][11]))
+ $result_disabled = intval($results[$i][11]);
+ else
+ $result_disabled = 0;
+
+ if ($result_disabled == 0) {
+ echo '';
+ $add_start_date = $lang_nostartdate;
+
+ if ($is_allowedToEdit || $is_tutor) {
+ $user = $results[$i][0];
+ echo '' . $user . ' ';
+ }
+ echo '' . $test . ' ';
+ echo '';
+ if ($results[$i][7] > 1) {
+ echo ceil((($results[$i][4] - $results[$i][7]) / 60)) . ' ' . get_lang('MinMinutes');
+ if ($results[$i][8] > 1) {
+ echo ' ( ' . $results[$i][8] . ' ' . get_lang('Steps') . ' )';
}
- $users_array_id[] = $results[$i][1].$results[$i][0];
+ $add_start_date = format_locale_date('%b %d, %Y %H:%M', $results[$i][7]) . ' / ';
+ } else {
+ echo get_lang('NoLogOfDuration');
}
+ echo ' ';
+ echo '' . $add_start_date . format_locale_date('%b %d, %Y %H:%M', $results[$i][4]) . ' '; //get_lang('dateTimeFormatLong')
- $user_list_name[] = $results[$i][0];
- $user_list_id[] = $results[$i][9];
- $id = $results[$i][5];
- $mailid = $results[$i][6];
- $user = $results[$i][0];
- $test = $results[$i][1];
- $dt = strftime($dateTimeFormatLong,$results[$i][4]);
- $res = $results[$i][2];
+ // there are already a duration test period calculated??
+ //echo ''.sprintf(get_lang('DurationFormat'), $duration).' ';
- $duration = intval($results[$i][10]);
- // we filter the results if we have the permission to
- if (isset($results[$i][11]))
- $result_disabled = intval($results[$i][11]);
- else
- $result_disabled = 0;
-
- if ($result_disabled==0) {
- echo ' ';
- $add_start_date = $lang_nostartdate;
-
- if ($is_allowedToEdit || $is_tutor) {
- $user = $results[$i][0];
- echo ''.$user.' ';
- }
- echo ''.$test.' ';
- echo '';
- if ($results[$i][7] > 1) {
- echo ceil((($results[$i][4] - $results[$i][7])/60)).' '.get_lang('MinMinutes');
- if($results[$i][8] > 1) {
- echo ' ( '.$results[$i][8].' '.get_lang('Steps').' )';
- }
- $add_start_date = format_locale_date('%b %d, %Y %H:%M',$results[$i][7]).' / ';
+ // if the float look like 10.00 we show only 10
+
+ $my_res = float_format($results[$i][2],1);
+ $my_total = float_format($results[$i][3],1);
+
+ echo ' ' . round(($my_res / ($my_total != 0 ? $my_total : 1)) * 100, 2) . '% (' . $my_res . ' / ' . $my_total . ') ';
+
+ // Is hard to read this!!
+ /*
+ echo ''.(($is_allowedToEdit||$is_tutor)?
+ "".
+ (($revised)?get_lang('Edit'):get_lang('Qualify'))." ".
+ ((api_is_platform_admin() || $is_tutor)?' - '.get_lang('Delete').' ':'')
+ .(($is_allowedToEdit)?' - '.get_lang('ViewHistoryChange').' ':'')
+ :(($revised)?"".get_lang('Show')." ":'')).' ';
+ */
+
+ echo '';
+ if ($is_allowedToEdit || $is_tutor) {
+ if ($revised) {
+ echo "";
+ echo get_lang('Edit');
} else {
- echo get_lang('NoLogOfDuration');
+ echo " ";
+ echo get_lang('Qualify');
}
-
- echo ' ';
-
- echo ''.$add_start_date.format_locale_date('%b %d, %Y %H:%M',$results[$i][4]).' ';//get_lang('dateTimeFormatLong')
-
- // there are already a duration test period calculated??
- //echo ''.sprintf(get_lang('DurationFormat'), $duration).' ';
- echo ''.round(($res/($results[$i][3]!=0?$results[$i][3]:1))*100,2).'% ('.$res.' / '.$results[$i][3].') ';
-
- // Is hard to read this!!
- /*
- echo ''.(($is_allowedToEdit||$is_tutor)?
- "".
- (($revised)?get_lang('Edit'):get_lang('Qualify'))." ".
- ((api_is_platform_admin() || $is_tutor)?' - '.get_lang('Delete').' ':'')
- .(($is_allowedToEdit)?' - '.get_lang('ViewHistoryChange').' ':'')
- :(($revised)?"".get_lang('Show')." ":'')).' ';
- */
-
- echo '';
- if ($is_allowedToEdit||$is_tutor) {
- if ($revised) {
- echo "";
- echo get_lang('Edit');
- } else {
- echo " ";
- echo get_lang('Qualify');
- }
- echo " ";
-
- if (api_is_platform_admin() || $is_tutor)
- echo ' - '.get_lang('Delete').' ';
- if ($is_allowedToEdit)
- echo ' - '.get_lang('ViewHistoryChange').' ';
- } else {
- if ($revised)
- echo "".get_lang('Show')." ";
- else
- echo ' '.get_lang('NoResult');
- }
- echo ' ';
-
-
- echo ' ';
-
+ echo "";
+
+ if (api_is_platform_admin() || $is_tutor)
+ echo ' - ' . get_lang('Delete') . ' ';
+ if ($is_allowedToEdit)
+ echo ' - ' . get_lang('ViewHistoryChange') . ' ';
+ } else {
+ if ($revised)
+ echo "" . get_lang('Show') . " ";
+ else
+ echo ' ' . get_lang('NoResult');
}
+ echo '';
+
+ echo '';
+
}
- } else {
- $NoTestRes = 1;
}
+ } else {
+ $NoTestRes = 1;
+ }
- // Print the Result of Hotpotatoes Tests
- if (is_array($hpresults)) {
- for($i = 0; $i < sizeof($hpresults); $i++) {
- $title = GetQuizName($hpresults[$i][1],$documentPath);
- if ($title =='') {
- $title = GetFileName($hpresults[$i][1]);
- }
- echo '';
- if ($is_allowedToEdit) {
- echo ''.$hpresults[$i][0].' ';
- }
- echo ''.$title.' ';
- echo ''.strftime($dateTimeFormatLong,$hpresults[$i][4]).' ';
- echo ''.round(($hpresults[$i][2]/($hpresults[$i][3]!=0?$hpresults[$i][3]:1))*100,2).'% ('.$hpresults[$i][2].' / '.$hpresults[$i][3].') ';
- echo ' '; //there is no possibility to edit the results of a Hotpotatoes test
- echo ' ';
+ // Print the Result of Hotpotatoes Tests
+ if (is_array($hpresults)) {
+ for ($i = 0; $i < sizeof($hpresults); $i++) {
+ $title = GetQuizName($hpresults[$i][1], $documentPath);
+ if ($title == '') {
+ $title = GetFileName($hpresults[$i][1]);
}
- } else {
- $NoHPTestRes = 1;
+ echo '';
+ if ($is_allowedToEdit) {
+ echo '' . $hpresults[$i][0] . ' ';
+ }
+ echo '' . $title . ' ';
+ echo '' . strftime($dateTimeFormatLong, $hpresults[$i][4]) . ' ';
+ echo '' . round(($hpresults[$i][2] / ($hpresults[$i][3] != 0 ? $hpresults[$i][3] : 1)) * 100, 2) . '% (' . $hpresults[$i][2] . ' / ' . $hpresults[$i][3] . ') ';
+ echo ' '; //there is no possibility to edit the results of a Hotpotatoes test
+ echo ' ';
}
+ } else {
+ $NoHPTestRes = 1;
+ }
- if ($NoTestRes==1 && $NoHPTestRes==1) {
- ?>
+ if ($NoTestRes == 1 && $NoHPTestRes == 1) {
+?>
+
+ }
+?>
+?>
diff --git a/main/exercice/exercise.class.php b/main/exercice/exercise.class.php
index 1e7348dab3..ab1e30a42b 100644
--- a/main/exercice/exercise.class.php
+++ b/main/exercice/exercise.class.php
@@ -25,7 +25,7 @@
* Exercise class: This class allows to instantiate an object of type Exercise
* @package dokeos.exercise
* @author Olivier Brouckaert
-* @version $Id: exercise.class.php 19959 2009-04-21 22:29:46Z cvargas1 $
+* @version $Id: exercise.class.php 20087 2009-04-24 20:44:55Z juliomontoya $
*/
@@ -851,25 +851,32 @@ class Exercise
$type='full';
}
// form title
- if (!empty($_GET['exerciseId']))
- {
+ if (!empty($_GET['exerciseId'])) {
$form_title = get_lang('ModifyExercise');
- }
- else
- {
+ } else {
$form_title = get_lang('NewEx');
}
$form->addElement('header', '', $form_title);
// title
$form -> addElement('text', 'exerciseTitle', get_lang('ExerciseName'),'class="input_titles"');
+
// fck editor
global $fck_attribute;
$fck_attribute = array();
$fck_attribute['Width'] = '100%';
$fck_attribute['Height'] = '200px';
- $fck_attribute['ToolbarSet'] = 'TestDescription';
-
- $form -> addElement ('html_editor', 'exerciseDescription', get_lang('ExerciseDescription'));
+ $fck_attribute['ToolbarSet'] = 'TestDescription';
+
+ $form -> addElement('html','');
+
+ $form -> addElement ('html','');
+ $form -> addElement ('html_editor', 'exerciseDescription');
+ $form -> addElement ('html','
');
$form -> addElement('html','
@@ -881,7 +888,7 @@ class Exercise
// Random questions
$form -> addElement('html','
');
- if($type=='full') {
+ if($type=='full') {
// feedback type
$radios_feedback = array();
$radios_feedback[] = FormValidator :: createElement ('radio', 'exerciseFeedbackType', null, get_lang('Feedback'),'0');
diff --git a/main/exercice/exercise_admin.php b/main/exercice/exercise_admin.php
index f4d941652d..5ae38dfd56 100644
--- a/main/exercice/exercise_admin.php
+++ b/main/exercice/exercise_admin.php
@@ -55,8 +55,18 @@ $htmlHeadXtra[] = '