Moodle PHP Documentation 4.3
Moodle 4.3.5 (Build: 20240610) (7dcfaa79f78)
qbank_customfields\customfield\question_handler Class Reference
Inheritance diagram for qbank_customfields\customfield\question_handler:
core_customfield\handler

Public Member Functions

 can_configure ()
 The current user can configure custom fields on this component.
 
 can_edit (field_controller $field, int $instanceid=0)
 The current user can edit custom fields for the given question.
 
 can_view (field_controller $field, int $instanceid)
 The current user can view custom fields for the given question.
 
 can_view_type (field_controller $field, context $context)
 Determine if the current user can view custom field in their given context.
 
 config_form_definition (\MoodleQuickForm $mform)
 Add custom controls to the field configuration form that will be saved.
 
 create_category (string $name=null)
 Creates a new category and inserts it to the database.
 
 delete_all ()
 Deletes all data and all fields and categories defined in this handler.
 
 delete_category (category_controller $category)
 Permanently delete category, all fields in it and all associated data.
 
 delete_field_configuration (field_controller $field)
 Permanently delete a custom field configuration and all associated data.
 
 delete_instance (int $instanceid)
 Deletes all data related to all fields of an instance.
 
 display_custom_categories_fields (array $catfielddata)
 Render the custom field category and filed data as HTML ready for display.
 
 display_custom_field_table (object $fielddata)
 Get the custom data for the given field and render HTML ready for display in question table.
 
 display_custom_fields_data (array $fieldsdata)
 Display visible custom fields.
 
 export_instance_data (int $instanceid, bool $returnall=false)
 Returns the custom field values for an individual instance ready to be displayed.
 
 export_instance_data_object (int $instanceid, bool $returnall=false)
 Returns the custom field values for an individual instance ready to be displayed.
 
 get_area ()
 Get area.
 
 get_available_field_types ()
 Get field types array.
 
 get_categories_fields_data (int $instanceid)
 For a given instance id (question id) get the categories and the fields with any data.
 
 get_categories_with_fields ()
 Returns array of categories, each of them contains a list of fields definitions.
 
 get_component ()
 Get component.
 
 get_configuration_context ()
 Context that should be used for new categories created by this handler.
 
 get_configuration_url ()
 URL for configuration page for the fields for the question custom fields.
 
 get_description_text_options ()
 Options for processing embedded files in the field description.
 
 get_editable_fields (int $instanceid)
 Get editable fields.
 
 get_field_data (\core_customfield\field_controller $field, int $instanceid)
 Given a field and instance id get all the filed data.
 
 get_fields ()
 Returns list of fields defined for this instance as an array (not groupped by categories)
 
 get_instance_context (int $instanceid=0)
 Returns the context for the data associated with the given instanceid.
 
 get_instance_data (int $instanceid, bool $returnall=false)
 Returns the custom field values for an individual instance.
 
 get_instance_data_for_backup (int $instanceid)
 Get raw data associated with all fields current user can view or edit.
 
 get_instances_data (array $instanceids, bool $returnall=false)
 Returns the custom fields values for multiple instances.
 
 get_itemid ()
 Get itemid.
 
 instance_form_before_set_data (stdClass $instance)
 Prepares the custom fields data related to the instance to pass to mform->set_data()
 
 instance_form_definition (\MoodleQuickForm $mform, int $instanceid=0, ?string $headerlangidentifier=null, ?string $headerlangcomponent=null)
 Adds custom fields to instance editing form.
 
 instance_form_definition_after_data (\MoodleQuickForm $mform, int $instanceid=0)
 Form data definition callback.
 
 instance_form_save (stdClass $instance, bool $isnewinstance=false)
 Saves the given data for custom fields, must be called after the instance is saved and id is present.
 
 instance_form_validation (array $data, array $files)
 Validates the given data for custom fields, used in moodleform validation() function.
 
 move_category (category_controller $category, int $beforeid=0)
 Change sort order of the categories.
 
 move_field (field_controller $field, int $categoryid, int $beforeid=0)
 Change fields sort order, move field to another category.
 
 rename_category (category_controller $category, string $name)
 Change name for a field category.
 
 restore_instance_data_from_backup (\restore_task $task, array $data)
 Creates or updates the question custom field data when restoring from a backup.
 
 save_field_configuration (field_controller $field, stdClass $data)
 Save the field configuration with the data from the form.
 
 set_parent_context (\context $context)
 Sets parent context for the question.
 
 uses_categories ()
 Uses categories.
 

Static Public Member Functions

static create (int $itemid=0)
 Creates the custom field handler and returns a singleton.
 
static get_handler (string $component, string $area, int $itemid=0)
 Returns an instance of handler by component/area/itemid.
 
static reset_caches ()
 Run reset code after unit tests to reset the singleton usage.
 

Public Attributes

int const NOTVISIBLE = 0
 Field is not displayed in the question display and question preview.
 
int const VISIBLETOALL = 2
 Field is displayed in the question display and question preview, visible to everybody.
 
int const VISIBLETOTEACHERS = 1
 Field is displayed in the question display and question preview but only for "teachers".
 

Protected Member Functions

 can_backup (field_controller $field, int $instanceid)
 Checks if current user can backup a given field.
 
 clear_configuration_cache ()
 Clears a list of categories with corresponding fields definitions.
 
 generate_category_name ($suffix=0)
 Generates a name for the new category.
 
 get_parent_context ()
 Returns the parent context for the question.
 
 get_visible_fields (int $instanceid)
 Get visible fields.
 
 validate_category (category_controller $category)
 Validate that the given category belongs to this handler.
 
 validate_field (field_controller $field)
 Validate that the given field belongs to this handler.
 

Protected Attributes

category_controller[] $categories = null
 
context $parentcontext
 

Static Protected Attributes

static question_handler $singleton
 

Member Function Documentation

◆ can_backup()

core_customfield\handler::can_backup ( field_controller $field,
int $instanceid )
protectedinherited

Checks if current user can backup a given field.

Capability to backup the instance does not need to be checked here

Parameters
field_controller$field
int$instanceid
Return values
bool

◆ can_configure()

qbank_customfields\customfield\question_handler::can_configure ( )

The current user can configure custom fields on this component.

Return values
booltrue if the current can configure custom fields, false otherwise

Reimplemented from core_customfield\handler.

◆ can_edit()

qbank_customfields\customfield\question_handler::can_edit ( field_controller $field,
int $instanceid = 0 )

The current user can edit custom fields for the given question.

Parameters
field_controller$field
int$instanceidid of the question to test edit permission
Return values
booltrue if the current can edit custom fields, false otherwise

Reimplemented from core_customfield\handler.

◆ can_view()

qbank_customfields\customfield\question_handler::can_view ( field_controller $field,
int $instanceid )

The current user can view custom fields for the given question.

Parameters
field_controller$field
int$instanceidid of the question to test edit permission
Return values
booltrue if the current can edit custom fields, false otherwise

Reimplemented from core_customfield\handler.

◆ can_view_type()

qbank_customfields\customfield\question_handler::can_view_type ( field_controller $field,
context $context )

Determine if the current user can view custom field in their given context.

This determines if the user can see the field at all not just the field for a particular instance. Used primarily in showing or not the field in the question bank table.

Parameters
field_controller$fieldThe field trying to be viewed.
context$contextThe context the field is being displayed in.
Return values
booltrue if the current can edit custom fields, false otherwise.

◆ config_form_definition()

qbank_customfields\customfield\question_handler::config_form_definition ( \MoodleQuickForm $mform)

Add custom controls to the field configuration form that will be saved.

Parameters
MoodleQuickForm$mformThe form to add the custom fields to.

Reimplemented from core_customfield\handler.

◆ create()

static qbank_customfields\customfield\question_handler::create ( int $itemid = 0)
static

Creates the custom field handler and returns a singleton.

Itemid is always zero as the custom fields are the same for every question across the system.

Parameters
int$itemidAlways zero.
Return values
qbank_customfields\customfield\question_handler

Reimplemented from core_customfield\handler.

◆ create_category()

core_customfield\handler::create_category ( string $name = null)
inherited

Creates a new category and inserts it to the database.

Parameters
string$namename of the category, null to generate automatically
Return values
intid of the new category

◆ delete_category()

core_customfield\handler::delete_category ( category_controller $category)
inherited

Permanently delete category, all fields in it and all associated data.

Parameters
category_controller$category
Return values
bool

◆ delete_field_configuration()

core_customfield\handler::delete_field_configuration ( field_controller $field)
inherited

Permanently delete a custom field configuration and all associated data.

Parameters
field_controller$field
Return values
bool

◆ delete_instance()

core_customfield\handler::delete_instance ( int $instanceid)
inherited

Deletes all data related to all fields of an instance.

Parameters
int$instanceid

◆ display_custom_categories_fields()

qbank_customfields\customfield\question_handler::display_custom_categories_fields ( array $catfielddata)

Render the custom field category and filed data as HTML ready for display.

Parameters
array$catfielddataArray of categories and field names and values.
Return values
stringThe HTML to display.

◆ display_custom_field_table()

qbank_customfields\customfield\question_handler::display_custom_field_table ( object $fielddata)

Get the custom data for the given field and render HTML ready for display in question table.

Parameters
object$fielddataThe field data used for display.
Return values
stringThe HTML to display in the table column.

◆ display_custom_fields_data()

core_customfield\handler::display_custom_fields_data ( array $fieldsdata)
inherited

Display visible custom fields.

This is a sample implementation that can be overridden in each handler.

Parameters
data_controller[]$fieldsdata
Return values
string

◆ export_instance_data()

core_customfield\handler::export_instance_data ( int $instanceid,
bool $returnall = false )
inherited

Returns the custom field values for an individual instance ready to be displayed.

The caller must check access to the instance itself before invoking this method

The result is an array of core_customfield\output\field_data objects

Parameters
int$instanceid
bool$returnall
Return values
core_customfield\output\field_data[]

◆ export_instance_data_object()

core_customfield\handler::export_instance_data_object ( int $instanceid,
bool $returnall = false )
inherited

Returns the custom field values for an individual instance ready to be displayed.

The caller must check access to the instance itself before invoking this method

The result is a class where properties are fields short names and the values their export values for this instance

Parameters
int$instanceid
bool$returnall
Return values
stdClass

◆ generate_category_name()

core_customfield\handler::generate_category_name ( $suffix = 0)
protectedinherited

Generates a name for the new category.

Parameters
int$suffix
Return values
string

◆ get_area()

core_customfield\handler::get_area ( )
inherited

Get area.

Return values
string

◆ get_available_field_types()

core_customfield\handler::get_available_field_types ( )
inherited

Get field types array.

Return values
array

◆ get_categories_fields_data()

qbank_customfields\customfield\question_handler::get_categories_fields_data ( int $instanceid)

For a given instance id (question id) get the categories and the fields with any data.

Return an array of categories containing an array of field names and values that is ready to be passed to a renderer.

Parameters
int$instanceidThe instance id to get the data for.
Return values
array\$cfdataThe fetched data

◆ get_categories_with_fields()

core_customfield\handler::get_categories_with_fields ( )
inherited

Returns array of categories, each of them contains a list of fields definitions.

Return values
category_controller[]

◆ get_component()

core_customfield\handler::get_component ( )
inherited

Get component.

Return values
string

◆ get_configuration_context()

qbank_customfields\customfield\question_handler::get_configuration_context ( )

Context that should be used for new categories created by this handler.

Return values
contextthe context for configuration

Reimplemented from core_customfield\handler.

◆ get_configuration_url()

qbank_customfields\customfield\question_handler::get_configuration_url ( )

URL for configuration page for the fields for the question custom fields.

Return values
moodle_urlThe URL to configure custom fields for this component

Reimplemented from core_customfield\handler.

◆ get_description_text_options()

core_customfield\handler::get_description_text_options ( )
inherited

Options for processing embedded files in the field description.

Handlers may want to extend it to disable files support and/or specify 'noclean'=>true Context is not necessary here

Return values
array

◆ get_editable_fields()

core_customfield\handler::get_editable_fields ( int $instanceid)
inherited

Get editable fields.

Parameters
int$instanceid
Return values
field_controller[]

◆ get_field_data()

qbank_customfields\customfield\question_handler::get_field_data ( \core_customfield\field_controller $field,
int $instanceid )

Given a field and instance id get all the filed data.

Parameters
field_controller$fieldThe field to get the data for.
int$instanceidThe instance id to get the data for.
Return values
core_customfield\data_controllerThe fetched data.

◆ get_fields()

core_customfield\handler::get_fields ( )
inherited

Returns list of fields defined for this instance as an array (not groupped by categories)

Fields are sorted in the same order they would appear on the instance edit form

Note that this function returns all fields in all categories regardless of whether the current user can view or edit data associated with them

Return values
field_controller[]

◆ get_handler()

static core_customfield\handler::get_handler ( string $component,
string $area,
int $itemid = 0 )
staticinherited

Returns an instance of handler by component/area/itemid.

Parameters
string$componentcomponent name of full frankenstyle plugin name
string$areaname of the area (each component/plugin may define handlers for multiple areas)
int$itemiditem id if the area uses them (usually not used)
Return values
handler

◆ get_instance_context()

qbank_customfields\customfield\question_handler::get_instance_context ( int $instanceid = 0)

Returns the context for the data associated with the given instanceid.

Parameters
int$instanceidid of the record to get the context for
Return values
contextthe context for the given record
Exceptions
coding_exception

Reimplemented from core_customfield\handler.

◆ get_instance_data()

core_customfield\handler::get_instance_data ( int $instanceid,
bool $returnall = false )
inherited

Returns the custom field values for an individual instance.

The caller must check access to the instance itself before invoking this method

The result is an array of data_controller objects

Parameters
int$instanceid
bool$returnallreturn data for all fields (by default only visible fields)
Return values
data_controller[]array of data_controller objects indexed by fieldid. All fields are present, some data_controller objects may have 'id', some not In the last case data_controller\get_value() and export_value() functions will return default values.

◆ get_instance_data_for_backup()

core_customfield\handler::get_instance_data_for_backup ( int $instanceid)
inherited

Get raw data associated with all fields current user can view or edit.

Parameters
int$instanceid
Return values
array

Reimplemented in core_group\customfield\group_handler, and core_group\customfield\grouping_handler.

◆ get_instances_data()

core_customfield\handler::get_instances_data ( array $instanceids,
bool $returnall = false )
inherited

Returns the custom fields values for multiple instances.

The caller must check access to the instance itself before invoking this method

The result is an array of data_controller objects

Parameters
int[]$instanceids
bool$returnallreturn data for all fields (by default only visible fields)
Return values
data_controller[][]2-dimension array, first index is instanceid, second index is fieldid. All instanceids and all fieldids are present, some data_controller objects may have 'id', some not. In the last case data_controller\get_value() and export_value() functions will return default values.

◆ get_itemid()

core_customfield\handler::get_itemid ( )
inherited

Get itemid.

Return values
int|null

◆ get_parent_context()

qbank_customfields\customfield\question_handler::get_parent_context ( )
protected

Returns the parent context for the question.

Return values
context

◆ get_visible_fields()

core_customfield\handler::get_visible_fields ( int $instanceid)
protectedinherited

Get visible fields.

Parameters
int$instanceid
Return values
field_controller[]

◆ instance_form_before_set_data()

core_customfield\handler::instance_form_before_set_data ( stdClass $instance)
inherited

Prepares the custom fields data related to the instance to pass to mform->set_data()

Example: $instance = $DB->get_record(...); // .... prepare editor, filemanager, add tags, etc. $handler->instance_form_before_set_data($instance); $form->set_data($instance);

Parameters
stdClass$instancethe instance that has custom fields, if 'id' attribute is present the custom fields for this instance will be added, otherwise the default values will be added.

◆ instance_form_definition()

core_customfield\handler::instance_form_definition ( \MoodleQuickForm $mform,
int $instanceid = 0,
?string $headerlangidentifier = null,
?string $headerlangcomponent = null )
inherited

Adds custom fields to instance editing form.

Example: public function definition() { // ... normal instance definition, including hidden 'id' field. $handler->instance_form_definition($this->_form, $instanceid); $this->add_action_buttons(); }

Parameters
MoodleQuickForm$mform
int$instanceidid of the instance, can be null when instance is being created
string$headerlangidentifierIf specified, a lang string will be used for field category headings
string$headerlangcomponent

◆ instance_form_definition_after_data()

core_customfield\handler::instance_form_definition_after_data ( \MoodleQuickForm $mform,
int $instanceid = 0 )
inherited

Form data definition callback.

This method is called from moodleform\definition_after_data and allows to tweak mform with some data coming directly from the field plugin data controller.

Parameters
MoodleQuickForm$mform
int$instanceid

◆ instance_form_save()

core_customfield\handler::instance_form_save ( stdClass $instance,
bool $isnewinstance = false )
inherited

Saves the given data for custom fields, must be called after the instance is saved and id is present.

Example: if ($data = $form->get_data()) { // ... save main instance, set $data->id if instance was created. $handler->instance_form_save($data); redirect(...); }

Parameters
stdClass$instancedata received from a form
bool$isnewinstanceif this is call is made during instance creation

◆ instance_form_validation()

core_customfield\handler::instance_form_validation ( array $data,
array $files )
inherited

Validates the given data for custom fields, used in moodleform validation() function.

Example: public function validation($data, $files) { $errors = []; // .... check other fields. $errors = array_merge($errors, $handler->instance_form_validation($data, $files)); return $errors; }

Parameters
array$data
array$files
Return values
arrayvalidation errors

◆ move_category()

core_customfield\handler::move_category ( category_controller $category,
int $beforeid = 0 )
inherited

Change sort order of the categories.

Parameters
category_controller$categorycategory that needs to be moved
int$beforeidid of the category this category needs to be moved before, 0 to move to the end

◆ move_field()

core_customfield\handler::move_field ( field_controller $field,
int $categoryid,
int $beforeid = 0 )
inherited

Change fields sort order, move field to another category.

Parameters
field_controller$fieldfield that needs to be moved
int$categoryidcategory that needs to be moved
int$beforeidid of the category this category needs to be moved before, 0 to move to the end

◆ rename_category()

core_customfield\handler::rename_category ( category_controller $category,
string $name )
inherited

Change name for a field category.

Parameters
category_controller$category
string$name

◆ restore_instance_data_from_backup()

qbank_customfields\customfield\question_handler::restore_instance_data_from_backup ( \restore_task $task,
array $data )

Creates or updates the question custom field data when restoring from a backup.

Parameters
restore_task$task
array$data

Reimplemented from core_customfield\handler.

◆ save_field_configuration()

core_customfield\handler::save_field_configuration ( field_controller $field,
stdClass $data )
inherited

Save the field configuration with the data from the form.

Parameters
field_controller$field
stdClass$datadata from the form

◆ set_parent_context()

qbank_customfields\customfield\question_handler::set_parent_context ( \context $context)

Sets parent context for the question.

This may be needed when question is being created, there is no question context but we need to check capabilities

Parameters
context$context

◆ uses_categories()

core_customfield\handler::uses_categories ( )
inherited

Uses categories.

Return values
bool

◆ validate_category()

core_customfield\handler::validate_category ( category_controller $category)
protectedinherited

Validate that the given category belongs to this handler.

Parameters
category_controller$category
Return values
category_controller
Exceptions
moodle_exception

◆ validate_field()

core_customfield\handler::validate_field ( field_controller $field)
protectedinherited

Validate that the given field belongs to this handler.

Parameters
field_controller$field
Return values
field_controller
Exceptions
moodle_exception

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