Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

lib/formslib.php setAdvanced: Difference between revisions

From MoodleDocs
mNo edit summary
No edit summary
Line 17: Line 17:


If you set any button in a form to be an advanced item then ''''show / hide advanced' buttons are shown automatically''' in the form. Show / hide buttons are currently displayed at the top right of all fieldsets containing advanced controls. The show / hide button shows or hides advanced controls using javascript or if no javascript is available then the whole page is submitted and redisplayed with advanced controls hidden or shown.
If you set any button in a form to be an advanced item then ''''show / hide advanced' buttons are shown automatically''' in the form. Show / hide buttons are currently displayed at the top right of all fieldsets containing advanced controls. The show / hide button shows or hides advanced controls using javascript or if no javascript is available then the whole page is submitted and redisplayed with advanced controls hidden or shown.
===What happens when a form is submitted with form elements hidden?===
If form elements are hidden and the form is submitted then no values are submitted by the form elements. But the 'default values' of the form elements are automatically passed to the processing functions from data_submitted(). Default values are set by setDefault normally called from within definition() function or by set_defaults which is called to load database contents into the form.

Revision as of 06:34, 19 December 2006

You can use MoodleQuickForm's method setAdvanced to specify a form element as an advanced option :

       $mform->addElement('select', 'display', get_string('displaymode', 'choice'), $CHOICE_DISPLAY);
       $mform->setAdvanced('display');

setAdvanced takes a second boolean parameter which defaults to true. True means set this control as an advanced control. False means it is not advanced.

       $mform->addElement('header', 'miscellaneoussettingshdr', get_string('miscellaneoussettings', 'form'));
       $mform->setAdvanced('miscellaneoussettingshdr');

Will set the header element miscellaneoussettingshdr and all the elements it contains to advanced.

If you set any button in a form to be an advanced item then 'show / hide advanced' buttons are shown automatically in the form. Show / hide buttons are currently displayed at the top right of all fieldsets containing advanced controls. The show / hide button shows or hides advanced controls using javascript or if no javascript is available then the whole page is submitted and redisplayed with advanced controls hidden or shown.

What happens when a form is submitted with form elements hidden?

If form elements are hidden and the form is submitted then no values are submitted by the form elements. But the 'default values' of the form elements are automatically passed to the processing functions from data_submitted(). Default values are set by setDefault normally called from within definition() function or by set_defaults which is called to load database contents into the form.