|
|
|
@ -58,25 +58,56 @@ class FillBlanks extends Question { |
|
|
|
|
*/ |
|
|
|
|
function createAnswersForm ($form) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$defaults = array(); |
|
|
|
|
|
|
|
|
|
if(!empty($this->id)) |
|
|
|
|
{ |
|
|
|
|
$objAnswer = new answer($this->id); |
|
|
|
|
$a_answer = explode('::', $objAnswer->selectAnswer(1)); |
|
|
|
|
$defaults['answer'] = $a_answer[0]; |
|
|
|
|
$a_weightings = explode(',',$a_answer[1]); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
$defaults['answer'] = get_lang('DefaultTextInBlanks'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// javascript |
|
|
|
|
echo ' |
|
|
|
|
<script type="text/javascript"> |
|
|
|
|
var firstTime = true; |
|
|
|
|
function updateBlanks() { |
|
|
|
|
field = document.getElementById("answer"); |
|
|
|
|
var answer = field.value; |
|
|
|
|
var blanks = answer.match(/\[[^\]]*\]/g); |
|
|
|
|
|
|
|
|
|
var fields = "<div class=\"row\"><div class=\"label\">'.get_lang('Weighting').'</div><div class=\"formw\"><table>"; |
|
|
|
|
for(i=0 ; i<blanks.length ; i++){ |
|
|
|
|
if(document.getElementById("weighting["+i+"]")) |
|
|
|
|
value = document.getElementById("weighting["+i+"]").value; |
|
|
|
|
else |
|
|
|
|
value = "1"; |
|
|
|
|
fields += "<tr><td>"+blanks[i]+"</td><td><input size=\"5\" value=\""+value+"\" type=\"text\" id=\"weighting["+i+"]\" name=\"weighting["+i+"]\" /></td></tr>"; |
|
|
|
|
|
|
|
|
|
if(blanks!=null){ |
|
|
|
|
for(i=0 ; i<blanks.length ; i++){ |
|
|
|
|
if(document.getElementById("weighting["+i+"]")) |
|
|
|
|
value = document.getElementById("weighting["+i+"]").value; |
|
|
|
|
else |
|
|
|
|
value = "1"; |
|
|
|
|
fields += "<tr><td>"+blanks[i]+"</td><td><input size=\"5\" value=\""+value+"\" type=\"text\" id=\"weighting["+i+"]\" name=\"weighting["+i+"]\" /></td></tr>"; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
document.getElementById("blanks_weighting").innerHTML = fields + "</table></div></div>"; |
|
|
|
|
|
|
|
|
|
if(firstTime){ |
|
|
|
|
firstTime = false; |
|
|
|
|
'; |
|
|
|
|
|
|
|
|
|
if(count($a_weightings)>0) |
|
|
|
|
{ |
|
|
|
|
foreach($a_weightings as $i=>$weighting) |
|
|
|
|
{ |
|
|
|
|
echo 'document.getElementById("weighting['.$i.']").value = "'.$weighting.'";'; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
echo '} |
|
|
|
|
} |
|
|
|
|
window.onload = updateBlanks; |
|
|
|
|
</script> |
|
|
|
@ -89,17 +120,6 @@ class FillBlanks extends Question { |
|
|
|
|
$form -> addRule ('answer',get_lang('GiveText'),'required'); |
|
|
|
|
$form -> addRule ('answer',get_lang('DefineBlanks'),'regex','/\[.*\]/'); |
|
|
|
|
|
|
|
|
|
$defaults = array(); |
|
|
|
|
|
|
|
|
|
if(!empty($this->id)) |
|
|
|
|
{ |
|
|
|
|
$objAnswer = new answer($this->id); |
|
|
|
|
$defaults['answer'] = $objAnswer->selectAnswer(1); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
{ |
|
|
|
|
$defaults['answer'] = get_lang('DefaultTextInBlanks'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$form -> addElement('html','<div id="blanks_weighting"></div>'); |
|
|
|
|
|
|
|
|
|