From: jamiesensei Date: Mon, 13 Nov 2006 07:43:22 +0000 (+0000) Subject: some changes to setHelpButton methods on elements and MoodleQuickForm to allow non... X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=d4fe14d3e42a2bc9878e60235b3679fa72f0df52;p=moodle.git some changes to setHelpButton methods on elements and MoodleQuickForm to allow non standard help buttons such as the grades pop up window. --- diff --git a/lib/form/checkbox.php b/lib/form/checkbox.php index 69ff6fe2b8..9c13dcaafd 100644 --- a/lib/form/checkbox.php +++ b/lib/form/checkbox.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/checkbox.php'); /** * HTML class for a checkbox type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_checkbox extends HTML_QuickForm_checkbox{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button @@ -43,13 +44,13 @@ class MoodleQuickForm_checkbox extends HTML_QuickForm_checkbox{ } /** * Automatically generates and assigns an 'id' attribute for the element. - * + * * Currently used to ensure that labels work on radio buttons and * checkboxes. Per idea of Alexander Radivanovich. * Overriden in moodleforms to remove qf_ prefix. * * @access private - * @return void + * @return void */ function _generateId() { diff --git a/lib/form/file.php b/lib/form/file.php index db00d12ad5..15192338c0 100644 --- a/lib/form/file.php +++ b/lib/form/file.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/file.php'); /** * HTML class for a form element to upload a file - * + * * @author Jamie Pratt * @access public */ @@ -19,24 +19,26 @@ class MoodleQuickForm_file extends HTML_QuickForm_file{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** - * get html for help button + * set html for help button * * @access public - * @return string html for help button + * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ function getHelpButton(){ return $this->_helpbutton; diff --git a/lib/form/group.php b/lib/form/group.php index 8c3fcf8f06..23ef0db77b 100644 --- a/lib/form/group.php +++ b/lib/form/group.php @@ -3,7 +3,7 @@ require_once("HTML/QuickForm/group.php"); /** * HTML class for a form element group - * + * * @author Adam Daniel * @author Bertrand Mansion * @version 1.0 @@ -25,24 +25,26 @@ class MoodleQuickForm_group extends HTML_QuickForm_group{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** - * get html for help button + * set html for help button * * @access public - * @return string html for help button + * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ function getHelpButton(){ return $this->_helpbutton; diff --git a/lib/form/hidden.php b/lib/form/hidden.php index 26e50bb334..7e78b1b1fa 100644 --- a/lib/form/hidden.php +++ b/lib/form/hidden.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/hidden.php'); /** * HTML class for a hidden type element - * + * * @author Jamie Pratt * @access public */ @@ -19,9 +19,10 @@ class MoodleQuickForm_hidden extends HTML_QuickForm_hidden{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ - + function setHelpButton($helpbuttonargs, $function='helpbutton'){ + } /** * get html for help button diff --git a/lib/form/modgroupmode.php b/lib/form/modgroupmode.php index 3a10ce8bfa..d54361ac67 100644 --- a/lib/form/modgroupmode.php +++ b/lib/form/modgroupmode.php @@ -9,8 +9,6 @@ require_once "$CFG->libdir/form/select.php"; * @access public */ class MoodleQuickForm_modgroupmode extends MoodleQuickForm_select{ - - /** * Class constructor * @@ -43,9 +41,10 @@ class MoodleQuickForm_modgroupmode extends MoodleQuickForm_select{ { switch ($event) { case 'createElement': - $choices=array(); + $choices = array(); $choices[0] = get_string('no'); $choices[1] = get_string('yes'); + $this->setHelpButton(array('groupmode', get_string('groupmode'))); $this->load($choices); break; } diff --git a/lib/form/password.php b/lib/form/password.php index 834d853aa6..183221d6f1 100644 --- a/lib/form/password.php +++ b/lib/form/password.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/password.php'); /** * HTML class for a password type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_password extends HTML_QuickForm_password{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button diff --git a/lib/form/radio.php b/lib/form/radio.php index 5c9769eec1..f80244a232 100644 --- a/lib/form/radio.php +++ b/lib/form/radio.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/radio.php'); /** * HTML class for a radio type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_radio extends HTML_QuickForm_radio{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button @@ -43,13 +44,13 @@ class MoodleQuickForm_radio extends HTML_QuickForm_radio{ } /** * Automatically generates and assigns an 'id' attribute for the element. - * + * * Currently used to ensure that labels work on radio buttons and * checkboxes. Per idea of Alexander Radivanovich. * Overriden in moodleforms to remove qf_ prefix. * * @access private - * @return void + * @return void */ function _generateId() { diff --git a/lib/form/select.php b/lib/form/select.php index 58ae596ce9..28ead18a82 100644 --- a/lib/form/select.php +++ b/lib/form/select.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/select.php'); /** * HTML class for a select type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_select extends HTML_QuickForm_select{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button diff --git a/lib/form/static.php b/lib/form/static.php index 438092183f..acc5e0bd09 100644 --- a/lib/form/static.php +++ b/lib/form/static.php @@ -3,7 +3,7 @@ require_once("HTML/QuickForm/static.php"); /** * HTML class for a text type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_static extends HTML_QuickForm_static{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button diff --git a/lib/form/text.php b/lib/form/text.php index 834c9b3cf3..b83ee767f7 100644 --- a/lib/form/text.php +++ b/lib/form/text.php @@ -3,7 +3,7 @@ require_once("HTML/QuickForm/text.php"); /** * HTML class for a text type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_text extends HTML_QuickForm_text{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button diff --git a/lib/form/textarea.php b/lib/form/textarea.php index ee3ffb87d5..ebd04cf3e5 100644 --- a/lib/form/textarea.php +++ b/lib/form/textarea.php @@ -3,7 +3,7 @@ require_once('HTML/QuickForm/textarea.php'); /** * HTML class for a textarea type element - * + * * @author Jamie Pratt * @access public */ @@ -19,18 +19,19 @@ class MoodleQuickForm_textarea extends HTML_QuickForm_textarea{ * * @access public * @param array $help array of arguments to make a help button + * @param string $function function name to call to get html */ - function setHelpButton($helpbuttonargs){ + function setHelpButton($helpbuttonargs, $function='helpbutton'){ if (!is_array($helpbuttonargs)){ $helpbuttonargs=array($helpbuttonargs); }else{ $helpbuttonargs=$helpbuttonargs; } - //we do this to to return html instead of printing it + //we do this to to return html instead of printing it //without having to specify it in every call to make a button. $defaultargs=array('', '', 'moodle', true, false, '', true); $helpbuttonargs=$helpbuttonargs + $defaultargs ; - $this->_helpbutton=call_user_func_array('helpbutton', $helpbuttonargs); + $this->_helpbutton=call_user_func_array($function, $helpbuttonargs); } /** * get html for help button diff --git a/lib/formslib.php b/lib/formslib.php index 8ac8d8bd59..f64744b331 100644 --- a/lib/formslib.php +++ b/lib/formslib.php @@ -337,7 +337,6 @@ class moodleform_mod extends moodleform { $mform=$this->_form; $mform->addElement('header', '', get_string('modstandardels', 'form')); $mform->addElement('modgroupmode', 'groupmode', get_string('groupmode')); - $mform->setHelpButton('groupmode', array('groupmode', get_string('groupmode'))); $mform->setType('groupmode', PARAM_INT); $mform->addElement('modvisible', 'visible', get_string('visible')); @@ -554,26 +553,27 @@ class MoodleQuickForm extends HTML_QuickForm_DHTMLRulesTableless { * * @access public */ - function setHelpButtons($buttons, $suppresscheck=false){ + function setHelpButtons($buttons, $suppresscheck=false, $function='helpbutton'){ foreach ($buttons as $elementname => $button){ - $this->setHelpButton($elementname, $button, $suppresscheck); + $this->setHelpButton($elementname, $button, $suppresscheck, $function); } } /** * Add a single button. * * @param string $elementname name of the element to add the item to - * @param array $button - arguments to pass to setHelpButton + * @param array $button - arguments to pass to function $function * @param boolean $suppresscheck - whether to throw an error if the element * doesn't exist. + * @param string $function - function to generate html from the arguments in $button */ - function setHelpButton($elementname, $button, $suppresscheck=false){ + function setHelpButton($elementname, $button, $suppresscheck=false, $function='helpbutton'){ if (array_key_exists($elementname, $this->_elementIndex)){ //_elements has a numeric index, this code accesses the elements by name $element=&$this->_elements[$this->_elementIndex[$elementname]]; if (method_exists($element, 'setHelpButton')){ - $element->setHelpButton($button); + $element->setHelpButton($button, $function); }else{ $a=new object(); $a->name=$element->getName(); @@ -935,5 +935,6 @@ MoodleQuickForm::registerElementType('hidden', "$CFG->libdir/form/hidden.php", ' MoodleQuickForm::registerElementType('modvisible', "$CFG->libdir/form/modvisible.php", 'MoodleQuickForm_modvisible'); MoodleQuickForm::registerElementType('modgroupmode', "$CFG->libdir/form/modgroupmode.php", 'MoodleQuickForm_modgroupmode'); MoodleQuickForm::registerElementType('selectyesno', "$CFG->libdir/form/selectyesno.php", 'MoodleQuickForm_selectyesno'); +MoodleQuickForm::registerElementType('modgrade', "$CFG->libdir/form/modgrade.php", 'MoodleQuickForm_modgrade'); ?> \ No newline at end of file