/**
* To autofocus on first form element or first element with error.
*
+ * @param string $name if this is set then the focus is forced to a field with this name
+ *
* @return string javascript to select form element with first error or
* first element if no errors. Use this as a parameter
* when calling print_header
*/
- function focus(){
+ function focus($name=NULL){
$form =& $this->_form;
$elkeys=array_keys($form->_elementIndex);
if (isset($form->_errors) && 0 != count($form->_errors)){
}
$names=null;
while (!$names){
- $el = array_shift($elkeys);
- $names = $form->_getElNamesRecursive($el);
+ $el = array_shift($elkeys);
+ $names = $form->_getElNamesRecursive($el);
+ }
+ if (empty($name)) {
+ $name=array_shift($names);
}
- $name=array_shift($names);
$focus='forms[\''.$this->_form->getAttribute('id').'\'].elements[\''.$name.'\']';
return $focus;
}
// Show the discussion name in the breadcrumbs.
$strdiscussionname = format_string($discussion->name).':';
}
+
+ $forcefocus = empty($reply) ? NULL : 'message';
+
if ($course->id != SITEID) {
print_header("$course->shortname: $strdiscussionname ".
format_string($toppost->subject), $course->fullname,
"<a href=\"../../course/view.php?id=$course->id\">$course->shortname</a> ->
- $navmiddle $navtail", $mform_post->focus(), "", true, "", navmenu($course, $cm));
+ $navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm));
} else {
print_header("$course->shortname: $strdiscussionname ".
format_string($toppost->subject), $course->fullname,
- "$navmiddle $navtail", $mform_post->focus(), "", true, "", navmenu($course, $cm));
+ "$navmiddle $navtail", $mform_post->focus($forcefocus), "", true, "", navmenu($course, $cm));
}