|
|
|
@ -29,7 +29,7 @@ |
|
|
|
|
* @author Olivier Brouckaert, main author |
|
|
|
|
* @author Roan Embrechts, some refactoring |
|
|
|
|
* @author Julio Montoya Armas switchable fill in blank option added |
|
|
|
|
* @version $Id: exercise_result.php 15892 2008-08-04 05:15:36Z yannoo $ |
|
|
|
|
* @version $Id: exercise_result.php 15893 2008-08-04 05:37:18Z yannoo $ |
|
|
|
|
* |
|
|
|
|
* @todo split more code up in functions, move functions to library? |
|
|
|
|
*/ |
|
|
|
@ -506,7 +506,7 @@ $exerciseTitle=api_parse_tex($exerciseTitle); |
|
|
|
|
$is_set_switchable = explode('@', $pre_array[$last]); |
|
|
|
|
|
|
|
|
|
$switchable_answer_set=false; |
|
|
|
|
if ($is_set_switchable[1]==1) |
|
|
|
|
if (isset($is_set_switchable[1]) && $is_set_switchable[1]==1) |
|
|
|
|
{ |
|
|
|
|
$switchable_answer_set=true; |
|
|
|
|
} |
|
|
|
@ -575,16 +575,6 @@ $exerciseTitle=api_parse_tex($exerciseTitle); |
|
|
|
|
$j++; |
|
|
|
|
$temp=substr($temp,$pos+1); |
|
|
|
|
} |
|
|
|
|
/* |
|
|
|
|
echo $answer; |
|
|
|
|
echo "<pre>"; |
|
|
|
|
print_r($user_tags); |
|
|
|
|
echo "<br>"; |
|
|
|
|
print_r($correct_tags); |
|
|
|
|
print_r($real_text); |
|
|
|
|
echo "</pre>"; |
|
|
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
$answer=''; |
|
|
|
|
$real_correct_tags = $correct_tags; |
|
|
|
@ -621,7 +611,7 @@ $exerciseTitle=api_parse_tex($exerciseTitle); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ // multiple fill in blank magic |
|
|
|
|
{ // switchable fill in the blanks |
|
|
|
|
if (in_array($user_tags[$i],$correct_tags)) |
|
|
|
|
{ |
|
|
|
|
$chosen_list[]=$user_tags[$i]; |
|
|
|
@ -649,77 +639,6 @@ $exerciseTitle=api_parse_tex($exerciseTitle); |
|
|
|
|
$answer.=' / <font color="green"><b>'.$real_correct_tags[$i].'</b></font>]'; |
|
|
|
|
$answer.=$real_text[$i]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
$answer=''; |
|
|
|
|
// the loop will stop at the end of the text |
|
|
|
|
while(1) |
|
|
|
|
{ |
|
|
|
|
// quits the loop if there are no more blanks |
|
|
|
|
if(($pos = strpos($temp,'[')) === false) |
|
|
|
|
{ |
|
|
|
|
// adds the end of the text |
|
|
|
|
$answer.=$temp; |
|
|
|
|
// TeX parsing |
|
|
|
|
$texstring = api_parse_tex($texstring); |
|
|
|
|
$answer=str_replace("{texcode}",$texstring,$answer); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// adds the piece of text that is before the blank and ended by [ |
|
|
|
|
$answer.=substr($temp,0,$pos+1); |
|
|
|
|
$temp=substr($temp,$pos+1); |
|
|
|
|
|
|
|
|
|
// quits the loop if there are no more blanks |
|
|
|
|
if(($pos = strpos($temp,']')) === false) |
|
|
|
|
{ |
|
|
|
|
// adds the end of the text |
|
|
|
|
$answer.=$temp; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$choice[$j]=trim($choice[$j]); |
|
|
|
|
|
|
|
|
|
if (!$switchable_answer_set) |
|
|
|
|
{ |
|
|
|
|
// if the word entered by the student IS the same as the one defined by the professor |
|
|
|
|
if(strtolower(substr($temp,0,$pos)) == stripslashes(strtolower($choice[$j]))) |
|
|
|
|
{ |
|
|
|
|
// gives the related weighting to the student |
|
|
|
|
$questionScore+=$answerWeighting[$j]; |
|
|
|
|
|
|
|
|
|
// increments total score |
|
|
|
|
$totalScore+=$answerWeighting[$j]; |
|
|
|
|
|
|
|
|
|
// adds the word in green at the end of the string |
|
|
|
|
$answer.=stripslashes($choice[$j]); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// else if the word entered by the student IS NOT the same as the one defined by the professor |
|
|
|
|
if(!empty($choice[$j])) |
|
|
|
|
{ |
|
|
|
|
// adds the word in red at the end of the string, and strikes it |
|
|
|
|
$answer.='<font color="red"><s>'.stripslashes($choice[$j]).'</s></font>'; |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
// adds a tabulation if no word has been typed by the student |
|
|
|
|
$answer.=' '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// adds the correct word, followed by ] to close the blank |
|
|
|
|
$answer.=' / <font color="green"><b>'.substr($temp,0,$pos).'</b></font>]'; |
|
|
|
|
|
|
|
|
|
$j++; |
|
|
|
|
|
|
|
|
|
$temp=substr($temp,$pos+1); |
|
|
|
|
} |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
break; |
|
|
|
|
// for free answer |
|
|
|
|