Moodle APIs  3.8
Moodle 3.8.6 (Build: 20201109)
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
restore_assign_activity_structure_step Class Reference

Define the complete assignment structure for restore, with file and id annotations. More...

Inheritance diagram for restore_assign_activity_structure_step:
restore_activity_structure_step restore_structure_step restore_step base_step executable loggable

Public Member Functions

 add_related_files ($component, $filearea, $mappingitemname, $filesctxid=null, $olditemid=null)
 Add all the existing file, given their component and filearea and one backup_ids itemname to match with.
 
 apply_date_offset ($value)
 Apply course startdate offset based in original course startdate and course_offset_startdate setting Note we are using one static cache here, but by restoreid, so it's ok for concurrence/multiple executions in the same request. More...
 
 decrypt ($value)
 Returns symmetric-key AES-256 decryption of base64 encoded contents. More...
 
 destroy ()
 Destroy all circular references. More...
 
 execute ()
 This function will perform all the actions necessary to achieve the execution of the plan/part/task.
 
 get_mapping ($itemname, $oldid)
 Return the complete mapping from the given itemname, itemid.
 
 get_mappingid ($itemname, $oldid, $ifnotfound=false)
 Return the new id of a mapping for the given itemname. More...
 
 get_name ()
 
 get_new_parentid ($itemname)
 Returns the latest (parent) new id mapped by one pathelement.
 
 get_old_parentid ($itemname)
 Returns the latest (parent) old id mapped by one pathelement.
 
 get_task ()
 As far as restore structure steps are implementing restore_plugin stuff, they need to have the parent task available for wrapping purposes (get course/context....) More...
 
 grouped_parent_exists ($pelement, $elements)
 Given one pathelement, return true if grouped parent was found. More...
 
 launch_after_restore_methods ()
 Launch all the after_restore methods present in all the processing objects. More...
 
 log ($message, $level, $a=null, $depth=null, $display=false)
 This function will be responsible for handling the params, and to call to the corresponding logger->process() once all modifications in params have been performed.
 
 process ($data)
 Receive one chunk of information form the xml parser processor and dispatch it, following the naming rules.
 
 set_mapping ($itemname, $oldid, $newid, $restorefiles=false, $filesctxid=null, $parentid=null)
 To send ids pairs to backup_ids_table and to store them into paths. More...
 
 set_task ($task)
 

Public Attributes

const SKIP_ALL_CHILDREN = -991399
 

Protected Member Functions

 add_plugin_config_files ($subtype)
 Restore files from plugin configuration. More...
 
 add_plugin_structure ($plugintype, $element)
 Add plugin structure to any element in the structure restore tree. More...
 
 add_subplugin_structure ($subplugintype, $element, $plugintype=null, $pluginname=null)
 Add subplugin structure for a given plugin to any element in the structure restore tree. More...
 
 after_execute ()
 Once the database tables have been fully restored, restore the files. More...
 
 after_restore ()
 This method will be executed after the rest of the restore has been processed. More...
 
 apply_activity_instance ($newitemid)
 This must be invoked immediately after creating the "module" activity record (forum, choice...) and will adjust the new activity id (the instance) in various places.
 
 define_structure ()
 Define the structure of the restore workflow. More...
 
 execute_condition ()
 To conditionally decide if one step will be executed or no. More...
 
 get_basepath ()
 
 get_courseid ()
 
 get_logger ()
 
 get_restoreid ()
 
 get_setting ($name)
 
 get_setting_value ($name)
 
 get_settings ()
 Protected API starts here.
 
 launch_after_execute_methods ()
 Launch all the after_execute methods present in all the processing objects. More...
 
 prepare_activity_structure ($paths)
 Adds support for the 'activity' path that is common to all the activities and will be processed globally here.
 
 prepare_pathelements ($elementsarr)
 Prepare the pathelements for processing, looking for duplicates, applying processing objects and other adjustments.
 
 process_activity ($data)
 Process the activity path, informing the task about various ids, needed later.
 
 process_assign ($data)
 Process an assign restore. More...
 
 process_assign_grade ($data)
 Process a grade restore. More...
 
 process_assign_override ($data)
 Process a assign override restore. More...
 
 process_assign_plugin_config ($data)
 Process a plugin-config restore. More...
 
 process_assign_submission ($data)
 Process a submission restore. More...
 
 process_assign_userflag ($data)
 Process a user_flags restore. More...
 
 set_latest_submission_field ()
 For all submissions in this assignment, either set the submission->latest field to 1 for the latest attempts or create a new submission record for grades with no submission. More...
 
 setting_exists ($name)
 

Protected Attributes

 $contentprocessor
 
 $elementsnewid
 
 $elementsoldid
 
 $filename
 
 $includesubmission = true
 Store whether submission details should be included. More...
 
 $name
 
 $pathelements
 
 $pathlock
 
 $task
 

Detailed Description

Define the complete assignment structure for restore, with file and id annotations.

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

Member Function Documentation

◆ add_plugin_config_files()

restore_assign_activity_structure_step::add_plugin_config_files (   $subtype)
protected

Restore files from plugin configuration.

Parameters
string$subtypethe plugin type to handle
Return values
void

◆ add_plugin_structure()

restore_structure_step::add_plugin_structure (   $plugintype,
  $element 
)
protectedinherited

Add plugin structure to any element in the structure restore tree.

Parameters
string$plugintypetype of plugin as defined by core_component::get_plugin_types()
restore_path_element$elementelement in the structure restore tree that we are going to add plugin information to

◆ add_subplugin_structure()

restore_structure_step::add_subplugin_structure (   $subplugintype,
  $element,
  $plugintype = null,
  $pluginname = null 
)
protectedinherited

Add subplugin structure for a given plugin to any element in the structure restore tree.

This method allows the injection of subplugins (of a specific plugin) parsing and proccessing to any element in the restore structure.

NOTE: Initially subplugins were only available for activities (mod), so only the restore_activity_structure_step class had support for them, always looking for /mod/modulenanme subplugins. This new method is a generalization of the existing one for activities, supporting all subplugins injecting information everywhere.

Parameters
string$subplugintypetype of subplugin as defined in plugin's db/subplugins.json.
restore_path_element$elementelement in the structure restore tree that we are going to add subplugin information to.
string$plugintypetype of the plugin.
string$pluginnamename of the plugin.
Return values
void

◆ after_execute()

restore_assign_activity_structure_step::after_execute ( )
protected

Once the database tables have been fully restored, restore the files.

Return values
void

Reimplemented from restore_structure_step.

◆ after_restore()

restore_structure_step::after_restore ( )
protectedinherited

This method will be executed after the rest of the restore has been processed.

Use if you need to update IDs based on things which are restored after this step has completed.

Reimplemented in restore_forum_activity_structure_step, restore_assignment_activity_structure_step, restore_module_structure_step, and restore_activity_grades_structure_step.

◆ apply_date_offset()

restore_step::apply_date_offset (   $value)
inherited

Apply course startdate offset based in original course startdate and course_offset_startdate setting Note we are using one static cache here, but by restoreid, so it's ok for concurrence/multiple executions in the same request.

Note: The policy is to roll date only for configurations and not for user data. see MDL-9367.

Parameters
int$valueTime value (seconds since epoch), or empty for nothing
Return values
intTime value after applying the date offset, or empty for nothing

◆ decrypt()

restore_step::decrypt (   $value)
inherited

Returns symmetric-key AES-256 decryption of base64 encoded contents.

This method is used in restore operations to decrypt contents encrypted with encrypted_final_element automatically decoding (base64) and decrypting contents using the key stored in backup_encryptkey config.

Requires openssl, cipher availability, and key existence (backup automatically sets it if missing). Integrity is provided via HMAC.

Parameters
string$valueencrypted_final_element value to decode and decrypt.
Return values
string|nulldecoded and decrypted value or null if the operation can not be performed.

◆ define_structure()

restore_assign_activity_structure_step::define_structure ( )
protected

Define the structure of the restore workflow.

Return values
restore_path_element::$structure

Reimplemented from restore_structure_step.

◆ destroy()

base_step::destroy ( )
inherited

Destroy all circular references.

It helps PHP 5.2 a lot!

◆ execute_condition()

restore_structure_step::execute_condition ( )
protectedinherited

To conditionally decide if one step will be executed or no.

For steps needing to be executed conditionally, based in dynamic conditions (at execution time vs at declaration time) you must override this function. It will return true if the step must be executed and false if not

Reimplemented in restore_userscompletion_structure_step, restore_activity_grade_history_structure_step, restore_activity_grades_structure_step, restore_activity_grading_structure_step, restore_activity_competencies_structure_step, restore_course_competencies_structure_step, restore_course_logstores_structure_step, restore_course_logs_structure_step, restore_course_completion_structure_step, restore_badges_structure_step, restore_enrolments_structure_step, restore_grade_history_structure_step, and restore_gradebook_structure_step.

◆ get_mappingid()

restore_structure_step::get_mappingid (   $itemname,
  $oldid,
  $ifnotfound = false 
)
inherited

Return the new id of a mapping for the given itemname.

Parameters
string$itemnamethe type of item
int$oldidthe item ID from the backup
mixed$ifnotfoundwhat to return if $oldid wasnt found. Defaults to false

◆ get_task()

restore_structure_step::get_task ( )
inherited

As far as restore structure steps are implementing restore_plugin stuff, they need to have the parent task available for wrapping purposes (get course/context....)

Return values
restore_task|null

◆ grouped_parent_exists()

restore_structure_step::grouped_parent_exists (   $pelement,
  $elements 
)
inherited

Given one pathelement, return true if grouped parent was found.

Parameters
restore_path_element$pelementthe element we are interested in.
restore_path_element[]$elementsthe elements that exist.
Return values
booltrue if this element is inside a grouped parent.

◆ launch_after_execute_methods()

restore_structure_step::launch_after_execute_methods ( )
protectedinherited

Launch all the after_execute methods present in all the processing objects.

This method will launch all the after_execute methods that can be defined both in restore_plugin and restore_structure_step classes

For restore_plugin classes the name of the method to be executed will be "after_execute_" + connection point (as far as can be multiple connection points in the same class)

For restore_structure_step classes is will be, simply, "after_execute". Note that this is executed after the plugin ones

◆ launch_after_restore_methods()

restore_structure_step::launch_after_restore_methods ( )
inherited

Launch all the after_restore methods present in all the processing objects.

This method will launch all the after_restore methods that can be defined both in restore_plugin class

For restore_plugin classes the name of the method to be executed will be "after_restore_" + connection point (as far as can be multiple connection points in the same class)

◆ process_assign()

restore_assign_activity_structure_step::process_assign (   $data)
protected

Process an assign restore.

Parameters
object$dataThe data in object form
Return values
void

◆ process_assign_grade()

restore_assign_activity_structure_step::process_assign_grade (   $data)
protected

Process a grade restore.

Parameters
object$dataThe data in object form
Return values
void

◆ process_assign_override()

restore_assign_activity_structure_step::process_assign_override (   $data)
protected

Process a assign override restore.

Parameters
object$dataThe data in object form
Return values
void

◆ process_assign_plugin_config()

restore_assign_activity_structure_step::process_assign_plugin_config (   $data)
protected

Process a plugin-config restore.

Parameters
object$dataThe data in object form
Return values
void

◆ process_assign_submission()

restore_assign_activity_structure_step::process_assign_submission (   $data)
protected

Process a submission restore.

Parameters
object$dataThe data in object form
Return values
void

◆ process_assign_userflag()

restore_assign_activity_structure_step::process_assign_userflag (   $data)
protected

Process a user_flags restore.

Parameters
object$dataThe data in object form
Return values
void

◆ set_latest_submission_field()

restore_assign_activity_structure_step::set_latest_submission_field ( )
protected

For all submissions in this assignment, either set the submission->latest field to 1 for the latest attempts or create a new submission record for grades with no submission.

Return values
void

◆ set_mapping()

restore_structure_step::set_mapping (   $itemname,
  $oldid,
  $newid,
  $restorefiles = false,
  $filesctxid = null,
  $parentid = null 
)
inherited

To send ids pairs to backup_ids_table and to store them into paths.

This method will send the given itemname and old/new ids to the backup_ids_temp table, and, at the same time, will save the new id into the corresponding restore_path_element for easier access by children. Also will inject the known old context id for the task in case it's going to be used for restoring files later

Member Data Documentation

◆ $includesubmission

restore_assign_activity_structure_step::$includesubmission = true
protected

Store whether submission details should be included.

Details may not be included if the this is a team submission, but groups/grouping information was not included in the backup.


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