Moodle APIs 4.3
Moodle 4.3.6 (Build: 20240812)
|
Class modal. More...
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. | |
Class modal.
Extend this class to create a form that can be used in a modal dialogue.
|
final |
Constructor for modal forms can not be overridden, however the same form can be used both in AJAX and normally.
string | $action | |
array | $customdata | |
string | $method | |
string | $target | |
array | $attributes | |
bool | $editable | |
array | $ajaxformdata | Forms submitted via ajax, must pass their data here, instead of relying on _GET and _POST. |
bool | $isajaxsubmission | whether the form is called from WS and it needs to validate user access and set up context |
|
abstractprotected |
Checks if current user has access to this form, otherwise throws exception.
Sometimes permission check may depend on the action and/or id of the entity. If necessary, form data is available in $this->_ajaxformdata or by calling $this->optional_param()
Example: require_capability('dosomething', $this->get_context_for_dynamic_submission());
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.
|
abstractprotected |
Returns context where this form is used.
This context is validated in {
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);
context |
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.
|
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]);
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.
|
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.
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.
|
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_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.