Moodle PHP Documentation 4.2
Moodle 4.2.8 (Build: 20240610) (2d41ac46f45)
core_form\dynamic_form Class Reference
Inheritance diagram for core_form\dynamic_form:
moodleform block_edit_form core_contentbank\form\upload_files core_customfield\field_config_form 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 tool_dataprivacy\form\contactdpo

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.
 
 definition_after_data ()
 Dummy stub method - override if you need to setup the form depending on current values.
 
 display ()
 Print html form.
 
 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
 

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

Returns context where this form is used.

This context is validated in {

See also
external_api\validate_context()}

If context depends on the form data, it is available in $this->_ajaxformdata or by calling $this->optional_param()

Example: $cmid = $this->optional_param('cmid', 0, PARAM_INT); return context_module\instance($cmid);

Return values
context

Reimplemented in block_edit_form, core_contentbank\form\upload_files, core_customfield\field_config_form, 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.

◆ 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_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_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

Load in existing data as form defaults.

Can be overridden to retrieve existing values from db by entity id and also to preprocess editor and filemanager elements

Example: $id = $this->optional_param('id', 0, PARAM_INT); $data = api\get_entity($id); // For example, retrieve a row from the DB. file_prepare_standard_filemanager($data, ...); $this->set_data($data);

Reimplemented in block_edit_form, core_contentbank\form\upload_files, core_customfield\field_config_form, 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.


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