mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
fixes for XHTML strict: add <fieldset> arround hidden form fields, use "id" instead of "name" to locate forms, use HTML entities in button captions <= and =>
This commit is contained in:
parent
d4ff178fa9
commit
14fa46fa00
@ -2922,14 +2922,23 @@ hpInterceptClues();
|
||||
hpInterceptChecks();
|
||||
function hpFindForm(formname, w) {
|
||||
if (w==null) w = self;
|
||||
var f = w.document.forms[formname];
|
||||
if (f==null && w.frames) {
|
||||
var f = w.document.getElementById(formname);
|
||||
if (f) {
|
||||
return f;
|
||||
}
|
||||
var f = w.document.forms[formname];
|
||||
if (f) {
|
||||
return f;
|
||||
}
|
||||
if (w.frames) {
|
||||
for (var i=0; i<w.frames.length; i++) {
|
||||
f = hpFindForm(formname, w.frames[i]);
|
||||
if (f) break;
|
||||
var f = hpFindForm(formname, w.frames[i]);
|
||||
if (f) {
|
||||
return f;
|
||||
}
|
||||
}
|
||||
}
|
||||
return f;
|
||||
return null;
|
||||
}
|
||||
function Finish(quizstatus) {
|
||||
var mark = hpScore();
|
||||
|
@ -1817,19 +1817,21 @@ class hotpot_xml_quiz extends hotpot_xml_tree {
|
||||
$this->html = preg_replace('|</head>|i', $script.'</head>', $this->html, 1);
|
||||
}
|
||||
function insert_submission_form($attemptid, $startblock, $endblock, $keep_contents=false, $targetframe='') {
|
||||
$form_name = 'store';
|
||||
$form_id = 'store';
|
||||
$form_fields = ''
|
||||
. '<fieldset style="display:none">'
|
||||
. '<input type="hidden" name="attemptid" value="'.$attemptid.'" />'
|
||||
. '<input type="hidden" name="starttime" value="" />'
|
||||
. '<input type="hidden" name="endtime" value="" />'
|
||||
. '<input type="hidden" name="mark" value="" />'
|
||||
. '<input type="hidden" name="detail" value="" />'
|
||||
. '<input type="hidden" name="status" value="" />'
|
||||
. '</fieldset>'
|
||||
;
|
||||
$this->insert_form($startblock, $endblock, $form_name, $form_fields, $keep_contents, false, $targetframe);
|
||||
$this->insert_form($startblock, $endblock, $form_id, $form_fields, $keep_contents, false, $targetframe);
|
||||
}
|
||||
function insert_giveup_form($attemptid, $startblock, $endblock, $keep_contents=false) {
|
||||
$form_name = ''; // no <form> tag will be generated
|
||||
$form_id = ''; // no <form> tag will be generated
|
||||
$form_fields = ''
|
||||
. '<button onclick="Finish('.HOTPOT_STATUS_ABANDONED.')" class="FuncButton" '
|
||||
. 'onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" '
|
||||
@ -1837,9 +1839,9 @@ class hotpot_xml_quiz extends hotpot_xml_tree {
|
||||
. 'onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOut(this)">'
|
||||
. get_string('giveup', 'hotpot').'</button>'
|
||||
;
|
||||
$this->insert_form($startblock, $endblock, $form_name, $form_fields, $keep_contents, true);
|
||||
$this->insert_form($startblock, $endblock, $form_id, $form_fields, $keep_contents, true);
|
||||
}
|
||||
function insert_form($startblock, $endblock, $form_name, $form_fields, $keep_contents, $center=false, $targetframe='') {
|
||||
function insert_form($startblock, $endblock, $form_id, $form_fields, $keep_contents, $center=false, $targetframe='') {
|
||||
global $CFG;
|
||||
$search = '#('.preg_quote($startblock).')(.*?)('.preg_quote($endblock).')#s';
|
||||
$replace = $form_fields;
|
||||
@ -1847,12 +1849,16 @@ class hotpot_xml_quiz extends hotpot_xml_tree {
|
||||
$replace .= '\\2';
|
||||
}
|
||||
if ($targetframe) {
|
||||
$frametarget = ' target="'.$targetframe.'"';
|
||||
} else {
|
||||
$frametarget = ' onsubmit="'."this.target='$targetframe';".'"';
|
||||
} else if (! empty($CFG->framename)) {
|
||||
$frametarget = ' onsubmit="'."this.target='$CFG->framename';".'"';
|
||||
} else if (! empty($CFG->frametarget)) {
|
||||
$frametarget = $CFG->frametarget;
|
||||
} else {
|
||||
$frametarget = '';
|
||||
}
|
||||
if ($form_name) {
|
||||
$replace = '<form action="'.$CFG->wwwroot.'/mod/hotpot/attempt.php" method="post" name="'.$form_name.'"'.$frametarget.'>'.$replace.'</form>';
|
||||
if ($form_id) {
|
||||
$replace = '<form action="'.$CFG->wwwroot.'/mod/hotpot/attempt.php" method="post" id="'.$form_id.'"'.$frametarget.'>'.$replace.'</form>';
|
||||
}
|
||||
if ($center) {
|
||||
$replace = '<div style="margin-left:auto; margin-right:auto; text-align: center;">'.$replace.'</div>';
|
||||
|
@ -48,6 +48,12 @@ class hotpot_xml_quiz_template extends hotpot_xml_template_default {
|
||||
if (!empty($pattern)) {
|
||||
$this->expand_strings('html', $pattern);
|
||||
}
|
||||
// fix doctype (convert short dtd to long dtd)
|
||||
$this->html = preg_replace(
|
||||
'/<!DOCTYPE[^>]*>/',
|
||||
'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">',
|
||||
$this->html, 1
|
||||
);
|
||||
}
|
||||
|
||||
// captions and messages
|
||||
@ -68,7 +74,7 @@ class hotpot_xml_quiz_template extends hotpot_xml_template_default {
|
||||
return $this->int_value('hotpot-config-file,global,include-back');
|
||||
}
|
||||
function v6_expand_BackCaption() {
|
||||
return $this->parent->xml_value('hotpot-config-file,global,back-caption');
|
||||
return str_replace('<=', '<=', $this->parent->xml_value('hotpot-config-file,global,back-caption'));
|
||||
}
|
||||
function v6_expand_ClickToAdd() {
|
||||
return $this->parent->xml_value('hotpot-config-file,'.$this->parent->quiztype.',click-to-add');
|
||||
@ -115,8 +121,7 @@ class hotpot_xml_quiz_template extends hotpot_xml_template_default {
|
||||
return $this->int_value('hotpot-config-file,global,include-next-ex');
|
||||
}
|
||||
function v6_expand_NextExCaption() {
|
||||
$caption = $this->parent->xml_value('hotpot-config-file,global,next-ex-caption');
|
||||
return ($caption=='=>' ? '=>' : $caption);
|
||||
return str_replace('=>', '=>', $this->parent->xml_value('hotpot-config-file,global,next-ex-caption'));
|
||||
}
|
||||
function v6_expand_NextQCaption() {
|
||||
return $this->parent->xml_value('hotpot-config-file,global,next-q-caption');
|
||||
|
Loading…
x
Reference in New Issue
Block a user