parent
64f48af489
commit
7917d7ef9b
@ -0,0 +1,159 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* Exercise preview |
||||||
|
* |
||||||
|
* @package chamilo.exercise |
||||||
|
* @author Julio Montoya <gugli100@gmail.com> |
||||||
|
*/ |
||||||
|
/** |
||||||
|
* Code |
||||||
|
*/ |
||||||
|
require_once 'exercise.class.php'; |
||||||
|
require_once 'exercise.lib.php'; |
||||||
|
$language_file = 'exercice'; |
||||||
|
|
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
|
||||||
|
$this_section = SECTION_COURSES; |
||||||
|
|
||||||
|
// Notice for unauthorized people. |
||||||
|
api_protect_course_script(true); |
||||||
|
|
||||||
|
if (empty ($exerciseId)) { |
||||||
|
$exercise_id = intval($_REQUEST['exerciseId']); |
||||||
|
} |
||||||
|
|
||||||
|
$objExercise = new Exercise(); |
||||||
|
$result = $objExercise->read($exercise_id); |
||||||
|
if (!$result) { |
||||||
|
api_not_allowed(true); |
||||||
|
} |
||||||
|
|
||||||
|
$gradebook = isset($_GET['gradebook']) ? Security :: remove_XSS($_GET['gradebook']) : null; |
||||||
|
$learnpath_id = isset($_REQUEST['learnpath_id']) ? intval($_REQUEST['learnpath_id']) : null; |
||||||
|
$learnpath_item_id = isset($_REQUEST['learnpath_item_id']) ? intval($_REQUEST['learnpath_item_id']) : null; |
||||||
|
$origin = isset($_REQUEST['origin']) ? Security::remove_XSS($_REQUEST['origin']) : null; |
||||||
|
|
||||||
|
$interbreadcrumb[] = array ("url" => "exercice.php?gradebook=$gradebook", "name" => get_lang('Exercices')); |
||||||
|
$interbreadcrumb[] = array ("url" => "#","name" => $objExercise->name); |
||||||
|
|
||||||
|
$htmlHeadXtra[] = api_get_jquery_ui_js(); |
||||||
|
|
||||||
|
$htmlHeadXtra[] = '<script language="javascript"> |
||||||
|
|
||||||
|
$(function() { |
||||||
|
$(".exercise_opener").live("click", function() { |
||||||
|
var url = this.href; |
||||||
|
var dialog = $("#dialog"); |
||||||
|
if ($("#dialog").length == 0) { |
||||||
|
dialog = $(\'<div id="dialog" style="display:hidden"></div> \').appendTo(\'body\'); |
||||||
|
} |
||||||
|
// load remote content |
||||||
|
dialog.load( |
||||||
|
url, |
||||||
|
{}, |
||||||
|
function(responseText, textStatus, XMLHttpRequest) { |
||||||
|
dialog.dialog({ |
||||||
|
width: 720, |
||||||
|
height: 550, |
||||||
|
modal: true, |
||||||
|
}); |
||||||
|
} |
||||||
|
); |
||||||
|
//prevent the browser to follow the link |
||||||
|
return false; |
||||||
|
}); |
||||||
|
|
||||||
|
}); |
||||||
|
</script>'; //jQuery |
||||||
|
|
||||||
|
if ($origin != 'learnpath') { |
||||||
|
Display::display_header(); |
||||||
|
} else { |
||||||
|
Display::display_reduced_header(); |
||||||
|
} |
||||||
|
|
||||||
|
$html = ''; |
||||||
|
|
||||||
|
$is_allowed_to_edit = api_is_allowed_to_edit(null,true); |
||||||
|
|
||||||
|
$html .= Display::tag('h1', $objExercise->name); |
||||||
|
$html .= Display::div($objExercise->description, array('class'=>'exercise_description')); |
||||||
|
|
||||||
|
//Buttons |
||||||
|
//Notice we not add there the lp_item_view__id because is not already generated |
||||||
|
$exercise_url = api_get_path(WEB_CODE_PATH).'exercice/exercise_submit.php?'.api_get_cidreq().'&id_session='.api_get_session_id().'&exerciseId='.$objExercise->id.'&origin='.$origin.'&learnpath_id='.$learnpath_id.'&learnpath_item_id='.$learnpath_item_id; |
||||||
|
$exercise_url = Display::url(get_lang('TakeTheExam'), $exercise_url, array('class'=>'a_button orange big round')); |
||||||
|
|
||||||
|
if (!$objExercise->is_visible()) { |
||||||
|
$exercise_url = Display::url(get_lang('TakeTheExam'), '#', array('class'=>'a_button white big round')); |
||||||
|
} |
||||||
|
|
||||||
|
$options = Display::div($exercise_url, array('class'=>'left_option')); |
||||||
|
|
||||||
|
$attempts = get_exercise_results_by_user(api_get_user_id(), $objExercise->id, api_get_course_id(), api_get_session_id(), $learnpath_id, $learnpath_item_id); |
||||||
|
|
||||||
|
$my_attempt_array = array(); |
||||||
|
$counter = 0; |
||||||
|
$table_content = ''; |
||||||
|
|
||||||
|
if (!empty($attempts)) { |
||||||
|
foreach($attempts as $attempt_result) { |
||||||
|
$counter++; |
||||||
|
$score = show_score($attempt_result['exe_result'], $attempt_result['exe_weighting']); |
||||||
|
$attempt_url = api_get_path(WEB_CODE_PATH).'exercice/result.php?'.api_get_cidreq().'&id='.$attempt_result['exe_id'].'&id_session='.api_get_session_id(); |
||||||
|
$attempt_link = Display::url(Display::return_icon('quiz.png', get_lang('Result'), array(), 22), $attempt_url, array('class'=>'exercise_opener')); |
||||||
|
if (!$is_allowed_to_edit && $attempt_result['attempt_revised'] == 0) { |
||||||
|
$attempt_link = get_lang('NoResult'); |
||||||
|
$attempt_link = Display::return_icon('quiz_na.png', get_lang('NoResult'), array(), 22); |
||||||
|
} |
||||||
|
$my_attempt_array[] = array('count' => $counter, |
||||||
|
'date' => api_convert_and_format_date($attempt_result['start_date'], DATE_TIME_FORMAT_LONG), |
||||||
|
'result' => $score, |
||||||
|
'attempt_link' => $attempt_link, |
||||||
|
); |
||||||
|
} |
||||||
|
|
||||||
|
$table = new HTML_Table(array('class' => 'data_table')); |
||||||
|
$header_names = array(get_lang('Attempt'), get_lang('Date'), get_lang('Score'), get_lang('Details')); |
||||||
|
$row = 0; |
||||||
|
$column = 0; |
||||||
|
foreach ($header_names as $item) { |
||||||
|
$table->setHeaderContents($row, $column, $item); |
||||||
|
$column++; |
||||||
|
} |
||||||
|
$row = 1; |
||||||
|
if (!empty($my_attempt_array)) { |
||||||
|
foreach ($my_attempt_array as $data) { |
||||||
|
$column = 0; |
||||||
|
$table->setCellContents($row, $column, $data); |
||||||
|
$class = 'class="row_odd"'; |
||||||
|
if($row % 2) { |
||||||
|
$class = 'class="row_even"'; |
||||||
|
} |
||||||
|
$table->setRowAttributes($row, $class, true); |
||||||
|
$column++; |
||||||
|
$row++; |
||||||
|
} |
||||||
|
} |
||||||
|
$table_content = $table->toHtml(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ($objExercise->selectAttempts()) { |
||||||
|
if ($is_allowed_to_edit) { |
||||||
|
$options.= Display::div(get_lang('MaxAttempts').' '.$objExercise->selectAttempts(), array('class'=>'right_option')); |
||||||
|
} else { |
||||||
|
$options.= Display::div(get_lang('AttemptsLeft').' '.$counter.' / '.$objExercise->selectAttempts(), array('class'=>'right_option')); |
||||||
|
} |
||||||
|
} |
||||||
|
$html.= Display::div($options, array('class'=>'exercise_overview_options')); |
||||||
|
|
||||||
|
$html .= $table_content; |
||||||
|
|
||||||
|
echo Display::div($html, array('class'=>'rounded_div', 'style'=>'width:60%')); |
||||||
|
|
||||||
|
if ($origin != 'learnpath') { |
||||||
|
Display::display_footer(); |
||||||
|
} |
||||||
@ -0,0 +1,374 @@ |
|||||||
|
<?php |
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
/** |
||||||
|
* Shows the exercise results |
||||||
|
* |
||||||
|
* @author Julio Montoya Armas Simple exercise result page |
||||||
|
* |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* Code |
||||||
|
*/ |
||||||
|
// name of the language file that needs to be included |
||||||
|
$language_file = array('exercice'); |
||||||
|
|
||||||
|
// including additional libraries |
||||||
|
require_once 'exercise.class.php'; |
||||||
|
require_once 'exercise.lib.php'; |
||||||
|
require_once 'question.class.php'; //also defines answer type constants |
||||||
|
require_once 'answer.class.php'; |
||||||
|
|
||||||
|
require_once '../inc/global.inc.php'; |
||||||
|
|
||||||
|
if (empty($origin) ) { |
||||||
|
$origin = $_REQUEST['origin']; |
||||||
|
} |
||||||
|
|
||||||
|
api_protect_course_script(); |
||||||
|
|
||||||
|
if ( empty ( $exeId ) ) { $exeId = $_REQUEST['id'];} |
||||||
|
|
||||||
|
//$emailId = $_REQUEST['email']; |
||||||
|
$id = intval($_REQUEST['id']); //exe id |
||||||
|
$current_time = time(); |
||||||
|
|
||||||
|
if (empty($id)) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
|
||||||
|
$is_allowedToEdit = api_is_allowed_to_edit(null,true) || $is_courseTutor; |
||||||
|
|
||||||
|
//Getting results from the exe_id. This variable also contain all the information about the exercise |
||||||
|
$track_exercise_info = get_exercise_track_exercise_info($id); |
||||||
|
|
||||||
|
//No track info |
||||||
|
if (empty($track_exercise_info)) { |
||||||
|
api_not_allowed(false); |
||||||
|
} |
||||||
|
|
||||||
|
$exercise_id = $track_exercise_info['id']; |
||||||
|
$exercise_date = $track_exercise_info['exe_date']; |
||||||
|
$student_id = $track_exercise_info['exe_user_id']; |
||||||
|
$learnpath_id = $track_exercise_info['orig_lp_id']; |
||||||
|
$learnpath_item_id = $track_exercise_info['orig_lp_item_id']; |
||||||
|
$lp_item_view_id = $track_exercise_info['orig_lp_item_view_id']; |
||||||
|
$course_code = api_get_course_id(); |
||||||
|
$current_user_id = api_get_user_id(); |
||||||
|
|
||||||
|
if (empty($objExercise)) { |
||||||
|
$objExercise = new Exercise(); |
||||||
|
$objExercise->read($exercise_id); |
||||||
|
} |
||||||
|
|
||||||
|
//Only users can see their own results |
||||||
|
if (!$is_allowedToEdit) { |
||||||
|
if ($student_id != $current_user_id) { |
||||||
|
api_not_allowed(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
Display::display_reduced_header(); |
||||||
|
|
||||||
|
$show_results = true; |
||||||
|
$show_only_total_score = false; |
||||||
|
|
||||||
|
// Avoiding the "Score 0/0" message when the exe_id is not set |
||||||
|
if (!empty($track_exercise_info)) { |
||||||
|
$exerciseTitle = $track_exercise_info['title']; |
||||||
|
$exerciseDescription = $track_exercise_info['description']; |
||||||
|
// if the results_disabled of the Quiz is 1 when block the script |
||||||
|
$result_disabled = $track_exercise_info['results_disabled']; |
||||||
|
|
||||||
|
if (!(api_is_platform_admin() || api_is_course_admin()) ) { |
||||||
|
if ($result_disabled == 1) { |
||||||
|
//api_not_allowed(); |
||||||
|
$show_results = false; |
||||||
|
//Display::display_warning_message(get_lang('CantViewResults')); |
||||||
|
if ($origin != 'learnpath') { |
||||||
|
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
||||||
|
<tr> |
||||||
|
<td colspan="2">'; |
||||||
|
Display::display_warning_message(get_lang('ThankYouForPassingTheTest').'<br /><br /><a href="exercice.php">'.(get_lang('BackToExercisesList')).'</a>', false); |
||||||
|
echo '</td> |
||||||
|
</tr> |
||||||
|
</table>'; |
||||||
|
} |
||||||
|
} elseif ($result_disabled == 2) { |
||||||
|
$show_results = false; |
||||||
|
$show_only_total_score = true; |
||||||
|
if ($origin != 'learnpath') { |
||||||
|
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0"> |
||||||
|
<tr> |
||||||
|
<td colspan="2">'; |
||||||
|
Display::display_warning_message(get_lang('ThankYouForPassingTheTest'), false); |
||||||
|
echo '</td> |
||||||
|
</tr> |
||||||
|
</table>'; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} else { |
||||||
|
Display::display_warning_message(get_lang('CantViewResults')); |
||||||
|
$show_results = false; |
||||||
|
} |
||||||
|
|
||||||
|
$html = ''; |
||||||
|
if ($show_results || $show_only_total_score) { |
||||||
|
$user_info = api_get_user_info($student_id); |
||||||
|
//Shows exercise header |
||||||
|
echo $objExercise->show_exercise_result_header(api_get_person_name($user_info['firstName'], $user_info['lastName']), api_convert_and_format_date($exercise_date)); |
||||||
|
} |
||||||
|
|
||||||
|
$i = $totalScore = $totalWeighting = 0; |
||||||
|
$result = get_exercise_results_by_attempt($id); |
||||||
|
|
||||||
|
$question_list = $result[$id]['question_list']; |
||||||
|
|
||||||
|
// for each question |
||||||
|
$total_weighting = 0; |
||||||
|
foreach ($question_list as $question_item) { |
||||||
|
$objQuestionTmp = Question::read($question_item['question_id']); |
||||||
|
$total_weighting +=$objQuestionTmp->selectWeighting(); |
||||||
|
} |
||||||
|
$counter = 1; |
||||||
|
|
||||||
|
foreach ($question_list as $question_item) { |
||||||
|
$choice = $question_item['answer']; |
||||||
|
// destruction of the Question object |
||||||
|
unset($objQuestionTmp); |
||||||
|
|
||||||
|
// creates a temporary Question object |
||||||
|
$questionId = $question_item['question_id']; |
||||||
|
$objQuestionTmp = Question::read($questionId); |
||||||
|
|
||||||
|
$questionName = $objQuestionTmp->selectTitle(); |
||||||
|
$questionDescription= $objQuestionTmp->selectDescription(); |
||||||
|
$questionWeighting = $objQuestionTmp->selectWeighting(); |
||||||
|
$answerType = $objQuestionTmp->selectType(); |
||||||
|
$quesId = $objQuestionTmp->selectId(); |
||||||
|
|
||||||
|
if ($show_results) { |
||||||
|
echo $objQuestionTmp->return_header($objExercise->feedbacktype, $counter); |
||||||
|
} |
||||||
|
$counter++; |
||||||
|
if ($answerType == MULTIPLE_ANSWER || $answerType == MULTIPLE_ANSWER_TRUE_FALSE) { |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == MULTIPLE_ANSWER_COMBINATION || $answerType == MULTIPLE_ANSWER_COMBINATION_TRUE_FALSE) { |
||||||
|
$choice = array(); |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == UNIQUE_ANSWER || $answerType == UNIQUE_ANSWER_NO_OPTION) { |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == FILL_IN_BLANKS) { |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == FREE_ANSWER) { |
||||||
|
$answer = $str; |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == MATCHING) { |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
} elseif ($answerType == HOT_SPOT) { |
||||||
|
if ($show_results) { |
||||||
|
echo '<table width="500" border="0"><tr> |
||||||
|
<td valign="top" align="center" style="padding-left:0px;" > |
||||||
|
<table border="1" bordercolor="#A4A4A4" style="border-collapse: collapse;" width="552">'; |
||||||
|
} |
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg()); |
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
|
||||||
|
if ($show_results) { |
||||||
|
echo '</table></td></tr>'; |
||||||
|
echo '<tr> |
||||||
|
<td colspan="2">'. |
||||||
|
'<object type="application/x-shockwave-flash" data="'.api_get_path(WEB_CODE_PATH).'plugin/hotspot/hotspot_solution.swf?modifyAnswers='.Security::remove_XSS($questionId).'&exe_id='.$id.'&from_db=1" width="552" height="352"> |
||||||
|
<param name="movie" value="../plugin/hotspot/hotspot_solution.swf?modifyAnswers='.Security::remove_XSS($questionId).'&exe_id='.$id.'&from_db=1" /> |
||||||
|
</object> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table><br/>'; |
||||||
|
} |
||||||
|
} else if($answerType == HOT_SPOT_DELINEATION) { |
||||||
|
|
||||||
|
$question_result = $objExercise->manage_answer($id, $questionId, $choice,'exercise_show', array(), false, true, $show_results, $objExercise->selectPropagateNeg(), 'database'); |
||||||
|
|
||||||
|
$questionScore = $question_result['score']; |
||||||
|
$totalScore += $question_result['score']; |
||||||
|
|
||||||
|
$final_overlap = $question_result['extra']['final_overlap']; |
||||||
|
$final_missing = $question_result['extra']['final_missing']; |
||||||
|
$final_excess = $question_result['extra']['final_excess']; |
||||||
|
|
||||||
|
$overlap_color = $question_result['extra']['overlap_color']; |
||||||
|
$missing_color = $question_result['extra']['missing_color']; |
||||||
|
$excess_color = $question_result['extra']['excess_color']; |
||||||
|
|
||||||
|
$threadhold1 = $question_result['extra']['threadhold1']; |
||||||
|
$threadhold2 = $question_result['extra']['threadhold2']; |
||||||
|
$threadhold3 = $question_result['extra']['threadhold3']; |
||||||
|
|
||||||
|
|
||||||
|
if ($show_results) { |
||||||
|
|
||||||
|
if ($overlap_color) { |
||||||
|
$overlap_color='green'; |
||||||
|
} else { |
||||||
|
$overlap_color='red'; |
||||||
|
} |
||||||
|
|
||||||
|
if ($missing_color) { |
||||||
|
$missing_color='green'; |
||||||
|
} else { |
||||||
|
$missing_color='red'; |
||||||
|
} |
||||||
|
if ($excess_color) { |
||||||
|
$excess_color='green'; |
||||||
|
} else { |
||||||
|
$excess_color='red'; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if (!is_numeric($final_overlap)) { |
||||||
|
$final_overlap = 0; |
||||||
|
} |
||||||
|
|
||||||
|
if (!is_numeric($final_missing)) { |
||||||
|
$final_missing = 0; |
||||||
|
} |
||||||
|
if (!is_numeric($final_excess)) { |
||||||
|
$final_excess = 0; |
||||||
|
} |
||||||
|
|
||||||
|
if ($final_excess>100) { |
||||||
|
$final_excess = 100; |
||||||
|
} |
||||||
|
|
||||||
|
$table_resume='<table class="data_table"> |
||||||
|
<tr class="row_odd" > |
||||||
|
<td></td> |
||||||
|
<td ><b>'.get_lang('Requirements').'</b></td> |
||||||
|
<td><b>'.get_lang('YourAnswer').'</b></td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr class="row_even"> |
||||||
|
<td><b>'.get_lang('Overlap').'</b></td> |
||||||
|
<td>'.get_lang('Min').' '.$threadhold1.'</td> |
||||||
|
<td><div style="color:'.$overlap_color.'">'.(($final_overlap < 0)?0:intval($final_overlap)).'</div></td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr> |
||||||
|
<td><b>'.get_lang('Excess').'</b></td> |
||||||
|
<td>'.get_lang('Max').' '.$threadhold2.'</td> |
||||||
|
<td><div style="color:'.$excess_color.'">'.(($final_excess < 0)?0:intval($final_excess)).'</div></td> |
||||||
|
</tr> |
||||||
|
|
||||||
|
<tr class="row_even"> |
||||||
|
<td><b>'.get_lang('Missing').'</b></td> |
||||||
|
<td>'.get_lang('Max').' '.$threadhold3.'</td> |
||||||
|
<td><div style="color:'.$missing_color.'">'.(($final_missing < 0)?0:intval($final_missing)).'</div></td> |
||||||
|
</tr></table>'; |
||||||
|
|
||||||
|
if ($answerType!= HOT_SPOT_DELINEATION) { |
||||||
|
$item_list=explode('@@',$destination); |
||||||
|
//print_R($item_list); |
||||||
|
$try = $item_list[0]; |
||||||
|
$lp = $item_list[1]; |
||||||
|
$destinationid= $item_list[2]; |
||||||
|
$url=$item_list[3]; |
||||||
|
$table_resume=''; |
||||||
|
} else { |
||||||
|
if ($next==0) { |
||||||
|
$try = $try_hotspot; |
||||||
|
$lp = $lp_hotspot; |
||||||
|
$destinationid= $select_question_hotspot; |
||||||
|
$url=$url_hotspot; |
||||||
|
} else { |
||||||
|
//show if no error |
||||||
|
//echo 'no error'; |
||||||
|
$comment=$answerComment=$objAnswerTmp->selectComment($nbrAnswers); |
||||||
|
$answerDestination=$objAnswerTmp->selectDestination($nbrAnswers); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
echo '<h1><div style="color:#333;">'.get_lang('Feedback').'</div></h1>'; |
||||||
|
if ($answerType == HOT_SPOT_DELINEATION) { |
||||||
|
if ($organs_at_risk_hit>0) { |
||||||
|
$message='<br />'.get_lang('ResultIs').' <b>'.$result_comment.'</b><br />'; |
||||||
|
$message.='<p style="color:#DC0A0A;"><b>'.get_lang('OARHit').'</b></p>'; |
||||||
|
} else { |
||||||
|
$message='<p>'.get_lang('YourDelineation').'</p>'; |
||||||
|
$message.=$table_resume; |
||||||
|
$message.='<br />'.get_lang('ResultIs').' <b>'.$result_comment.'</b><br />'; |
||||||
|
} |
||||||
|
$message.='<p>'.$comment.'</p>'; |
||||||
|
echo $message; |
||||||
|
} else { |
||||||
|
echo '<p>'.$comment.'</p>'; |
||||||
|
} |
||||||
|
|
||||||
|
//showing the score |
||||||
|
$queryfree = "select marks from ".$TBL_TRACK_ATTEMPT." where exe_id = '".Database::escape_string($id)."' and question_id= '".Database::escape_string($questionId)."'"; |
||||||
|
$resfree = Database::query($queryfree); |
||||||
|
$questionScore= Database::result($resfree,0,"marks"); |
||||||
|
$totalScore+=$questionScore; |
||||||
|
?> |
||||||
|
</table> |
||||||
|
</td></tr> |
||||||
|
<?php
|
||||||
|
echo '<tr> |
||||||
|
<td colspan="2"> |
||||||
|
<object type="application/x-shockwave-flash" data="../plugin/hotspot/hotspot_solution.swf?modifyAnswers='.$questionId.'&exe_id='.$id.'&from_db=1" width="556" height="350"> |
||||||
|
<param name="movie" value="../plugin/hotspot/hotspot_solution.swf?modifyAnswers='.$questionId.'&exe_id='.$id.'&from_db=1" /> |
||||||
|
|
||||||
|
</object> |
||||||
|
</td> |
||||||
|
</tr> |
||||||
|
</table>'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ($show_results) { |
||||||
|
if ($answerType != HOT_SPOT) { |
||||||
|
echo '</table>'; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$my_total_score = $questionScore; |
||||||
|
$my_total_weight = $questionWeighting; |
||||||
|
|
||||||
|
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score < 0) { |
||||||
|
$my_total_score = 0; |
||||||
|
} |
||||||
|
if ($show_results) { |
||||||
|
echo '<div id="question_score">'; |
||||||
|
echo get_lang('Score')." : ".show_score($my_total_score, $my_total_weight, false, false); |
||||||
|
echo '</div>'; |
||||||
|
} |
||||||
|
unset($objAnswerTmp); |
||||||
|
$i++; |
||||||
|
|
||||||
|
$totalWeighting += $questionWeighting; |
||||||
|
|
||||||
|
} // end of large foreach on questions |
||||||
|
|
||||||
|
//Total score |
||||||
|
if ($show_results || $show_only_total_score ) { |
||||||
|
echo '<div id="question_score">'.get_lang('YourTotalScore').": "; |
||||||
|
$my_total_score_temp = $totalScore; |
||||||
|
if ($objExercise->selectPropagateNeg() == 0 && $my_total_score_temp < 0) { |
||||||
|
$my_total_score_temp = 0; |
||||||
|
} |
||||||
|
echo show_score($my_total_score_temp, $totalWeighting, false); |
||||||
|
echo '</div>'; |
||||||
|
} |
||||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 826 B |
Loading…
Reference in new issue