Moodle APIs 4.3
Moodle 4.3.6 (Build: 20240812)
core_form\dynamic_form Class Reference

Class modal. More...

Inheritance diagram for core_form\dynamic_form:

Public Member Functions

 __construct (?string $action=null, ?array $customdata=null, string $method='post', string $target='', ?array $attributes=[], bool $editable=true, ?array $ajaxformdata=null, bool $isajaxsubmission=false)
 Constructor for modal forms can not be overridden, however the same form can be used both in AJAX and normally.
 
 _process_submission ($method)
 Internal method.
 
 _validate_files (&$files)
 Internal method.
 
 add_action_buttons ($cancel=true, $submitlabel=null)
 Use this method to a cancel and submit button to the end of your form.
 
 add_checkbox_controller ($groupid, $text=null, $attributes=null, $originalValue=0)
 Adds a link/button that controls the checked state of a group of checkboxes.
 
 add_sticky_action_buttons (bool $cancel=true, ?string $submitlabel=null)
 Use this method to make a sticky submit/cancel button at the end of your form.
 
 definition_after_data ()
 Dummy stub method - override if you need to setup the form depending on current values.
 
 display ()
 Print html form.
 
 filter_shown_headers (array $shownonly)
 Use this method to indicate that the fieldsets should be shown as expanded and all other fieldsets should be hidden.
 
 focus ($name=NULL)
 To autofocus on first form element or first element with error.
 
 get_data ()
 Return submitted data if properly submitted or returns NULL if validation fails or if there is no submitted data.
 
 get_file_content ($elname)
 Get content of uploaded file.
 
 get_new_filename ($elname=null)
 Returns name of uploaded file.
 
 get_submitted_data ()
 Return submitted data without validation or NULL if there is no submitted data.
 
 init_javascript_enhancement ($element, $enhancement, array $options=array(), array $strings=null)
 Adds an initialisation call for a standard JavaScript enhancement.
 
 is_cancelled ()
 Return true if a cancel button has been pressed resulting in the form being submitted.
 
 is_submitted ()
 Check that form was submitted.
 
 is_validated ()
 Check that form data is valid.
 
 moodleform ($action=null, $customdata=null, $method='post', $target='', $attributes=null, $editable=true)
 Old syntax of class constructor.
 
 no_submit_button_pressed ()
 Checks if button pressed is not for submitting the form.
 
 optional_param ($name, $default, $type)
 Checks if a parameter was passed in the previous form submission.
 
 process_dynamic_submission ()
 Process the form submission, used if form was submitted via AJAX.
 
 render ()
 Renders the html form (same as display, but returns the result).
 
 repeat_elements ($elementobjs, $repeats, $options, $repeathiddenname, $addfieldsname, $addfieldsno=5, $addstring=null, $addbuttoninside=false, $deletebuttonname='')
 Method to add a repeating group of elements to a form.
 
 repeat_elements_fix_clone ($i, $elementclone, &$namecloned)
 Helper used by repeat_elements().
 
 save_file ($elname, $pathname, $override=false)
 Save file to standard filesystem.
 
 save_files ($destination)
 Save verified uploaded files into directory.
 
 save_stored_file ($elname, $newcontextid, $newcomponent, $newfilearea, $newitemid, $newfilepath='/', $newfilename=null, $overwrite=false, $newuserid=null)
 Save file to local filesystem pool.
 
 save_temp_file ($elname)
 Returns a temporary file, do not forget to delete after not needed any more.
 
 set_data ($default_values)
 Load in existing data as form defaults.
 
 set_data_for_dynamic_submission ()
 Load in existing data as form defaults.
 
 set_display_vertical ()
 Set display mode for the form when labels take full width of the form and above the elements even on big screens.
 
 set_initial_dirty_state ($state=false)
 Set the initial 'dirty' state of the form.
 
 validate_defined_fields ($validateonnosubmit=false)
 Validate the form.
 
 validation ($data, $files)
 Dummy stub method - override if you needed to perform some extra validation.
 

Static Public Member Functions

static get_js_module ()
 Returns a JS module definition for the mforms JS.
 
static mock_ajax_submit ($simulatedsubmitteddata, $simulatedsubmittedfiles=array(), $method='post', $formidentifier=null)
 Used by tests to simulate submitted form data submission via AJAX.
 
static mock_generate_submit_keys ($data=[])
 Used by tests to generate valid submit keys for moodle forms that are submitted with ajax data.
 
static mock_submit ($simulatedsubmitteddata, $simulatedsubmittedfiles=array(), $method='post', $formidentifier=null)
 Used by tests to simulate submitted form data submission from the user.
 

Protected Member Functions

 _get_post_params ()
 Internal method - should not be used anywhere.
 
 after_definition ()
 After definition hook.
 
 check_access_for_dynamic_submission ()
 Checks if current user has access to this form, otherwise throws exception.
 
 definition ()
 Form definition.
 
 get_array_value_by_keys (array $array, array $keys)
 Returns an element of multi-dimensional array given the list of keys.
 
 get_context_for_dynamic_submission ()
 Returns context where this form is used.
 
 get_draft_files ($elname)
 Get draft files of a form element This is a protected method which will be used only inside moodleforms.
 
 get_form_identifier ()
 It should returns unique identifier for the form.
 
 get_page_url_for_dynamic_submission ()
 Returns url to set in $PAGE->set_url() when form is being rendered or submitted via AJAX.
 
 validate_draft_files ()
 Internal method.
 

Protected Attributes

array $_ajaxformdata
 submitted form data when using mforms with ajax
 
mixed $_customdata
 globals workaround
 
object $_definition_finalized = false
 definition_after_data executed flag
 
MoodleQuickForm $_form
 quickform object definition
 
string $_formname
 name of the form
 
bool null $_validated = null
 stores the validation result of this form or null if not yet validated
 

Static Protected Attributes

static int $uniqueid = 0
 Unique identifier to be used for action buttons.
 

Detailed Description

Class modal.

Extend this class to create a form that can be used in a modal dialogue.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Constructor & Destructor Documentation

◆ __construct()

core_form\dynamic_form::__construct ( ?string $action = null,
?array $customdata = null,
string $method = 'post',
string $target = '',
?array $attributes = [],
bool $editable = true,
?array $ajaxformdata = null,
bool $isajaxsubmission = false )
final

Constructor for modal forms can not be overridden, however the same form can be used both in AJAX and normally.

Parameters
string$action
array$customdata
string$method
string$target
array$attributes
bool$editable
array$ajaxformdataForms submitted via ajax, must pass their data here, instead of relying on _GET and _POST.
bool$isajaxsubmissionwhether the form is called from WS and it needs to validate user access and set up context

Member Function Documentation

◆ check_access_for_dynamic_submission()

core_form\dynamic_form::check_access_for_dynamic_submission ( )
abstractprotected

◆ get_context_for_dynamic_submission()

core_form\dynamic_form::get_context_for_dynamic_submission ( )
abstractprotected

◆ get_page_url_for_dynamic_submission()

core_form\dynamic_form::get_page_url_for_dynamic_submission ( )
abstractprotected

Returns url to set in $PAGE->set_url() when form is being rendered or submitted via AJAX.

This is used in the form elements sensitive to the page url, such as Atto autosave in 'editor'

If the form has arguments (such as 'id' of the element being edited), the URL should also have respective argument.

Example: $id = $this->optional_param('id', 0, PARAM_INT); return new moodle_url('/my/page/where/form/is/used.php', ['id' => $id]);

Return values
moodle_url

Reimplemented in block_edit_form, core_contentbank\form\upload_files, core_customfield\field_config_form, core_grades\form\add_category, core_grades\form\add_item, core_grades\form\add_outcome, core_reportbuilder\form\audience, core_reportbuilder\form\card_view, core_reportbuilder\form\condition, core_reportbuilder\form\filter, core_reportbuilder\form\report, core_reportbuilder\form\schedule, core_user\form\private_files, core_user\form\profile_category_form, core_user\form\profile_field_form, mod_bigbluebuttonbn\form\guest_add, mod_data\form\import_presets, mod_data\form\save_as_preset, mod_feedback\form\create_template_form, mod_feedback\form\use_template_form, and tool_dataprivacy\form\contactdpo.

◆ process_dynamic_submission()

core_form\dynamic_form::process_dynamic_submission ( )
abstract

Process the form submission, used if form was submitted via AJAX.

This method can return scalar values or arrays that can be json-encoded, they will be passed to the caller JS.

Submission data can be accessed as: $this->get_data()

Example: $data = $this->get_data(); file_postupdate_standard_filemanager($data, ....); api\save_entity($data); // Save into the DB, trigger event, etc.

Return values
mixed

Reimplemented in block_edit_form, core_contentbank\form\upload_files, core_customfield\field_config_form, core_grades\form\add_category, core_grades\form\add_item, core_grades\form\add_outcome, core_reportbuilder\form\audience, core_reportbuilder\form\card_view, core_reportbuilder\form\condition, core_reportbuilder\form\filter, core_reportbuilder\form\report, core_reportbuilder\form\schedule, core_user\form\private_files, core_user\form\profile_category_form, core_user\form\profile_field_form, mod_bigbluebuttonbn\form\guest_add, mod_data\form\import_presets, mod_data\form\save_as_preset, mod_feedback\form\create_template_form, mod_feedback\form\use_template_form, and tool_dataprivacy\form\contactdpo.

◆ set_data_for_dynamic_submission()

core_form\dynamic_form::set_data_for_dynamic_submission ( )
abstract

The documentation for this class was generated from the following file: