Search moodle.org's
Developer Documentation

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
  • Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 37 and 311] [Versions 38 and 311] [Versions 39 and 311]

    Defines various backup steps that will be used by common tasks in backup

    Copyright: 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
    License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
    File Size: 2861 lines (112 kb)
    Included or required:0 times
    Referenced: 2 times
    Includes or requires: 0 files

    Defines 53 classes

    create_and_clean_temp_stuff:: (1 method):
      define_execution()

    drop_and_clean_temp_stuff:: (2 methods):
      define_execution()
      skip_cleaning_temp_dir()

    create_taskbasepath_directory:: (1 method):
      define_execution()

    backup_activity_structure_step:: (2 methods):
      prepare_activity_structure()
      add_question_usages()

    backup_questions_activity_structure_step:: (0 methods):

    backup_calculate_question_categories:: (1 method):
      define_execution()

    backup_delete_temp_questions:: (1 method):
      define_execution()

    backup_block_structure_step:: (1 method):
      prepare_block_structure()

    backup_module_structure_step:: (1 method):
      define_structure()

    backup_section_structure_step:: (1 method):
      define_structure()

    backup_course_structure_step:: (1 method):
      define_structure()

    backup_enrolments_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_roles_structure_step:: (1 method):
      define_structure()

    backup_final_roles_structure_step:: (1 method):
      define_structure()

    backup_final_scales_structure_step:: (1 method):
      define_structure()

    backup_final_outcomes_structure_step:: (1 method):
      define_structure()

    backup_filters_structure_step:: (1 method):
      define_structure()

    backup_comments_structure_step:: (1 method):
      define_structure()

    backup_badges_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_calendarevents_structure_step:: (1 method):
      define_structure()

    backup_gradebook_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_grade_history_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_userscompletion_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_groups_structure_step:: (1 method):
      define_structure()

    backup_users_structure_step:: (1 method):
      define_structure()

    backup_block_instance_structure_step:: (1 method):
      define_structure()

    backup_course_logs_structure_step:: (1 method):
      define_structure()

    backup_activity_logs_structure_step:: (1 method):
      define_structure()

    backup_course_logstores_structure_step:: (1 method):
      define_structure()

    backup_course_loglastaccess_structure_step:: (1 method):
      define_structure()

    backup_activity_logstores_structure_step:: (0 methods):

    backup_course_competencies_structure_step:: (2 methods):
      define_structure()
      execute_condition()

    backup_activity_competencies_structure_step:: (2 methods):
      define_structure()
      execute_condition()

    backup_inforef_structure_step:: (1 method):
      define_structure()

    move_inforef_annotations_to_final:: (1 method):
      define_execution()

    backup_final_files_structure_step:: (1 method):
      define_structure()

    backup_main_structure_step:: (1 method):
      define_structure()

    backup_zip_contents:: (2 methods):
      define_execution()
      progress()

    backup_store_backup_file:: (1 method):
      define_execution()

    backup_activity_grade_items_to_ids:: (1 method):
      define_execution()

    backup_enrolments_execution_step:: (2 methods):
      define_execution()
      annotate_id()

    backup_annotate_course_groups_and_groupings:: (1 method):
      define_execution()

    backup_annotate_groups_from_groupings:: (1 method):
      define_execution()

    backup_annotate_scales_from_outcomes:: (1 method):
      define_execution()

    backup_annotate_all_question_files:: (1 method):
      define_execution()

    backup_questions_structure_step:: (1 method):
      define_structure()

    backup_annotate_all_user_files:: (1 method):
      define_execution()

    backup_activity_grading_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_activity_grades_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_activity_grade_history_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_course_completion_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_completion_defaults_structure_step:: (2 methods):
      execute_condition()
      define_structure()

    backup_contentbankcontent_structure_step:: (1 method):
      define_structure()


    Class: create_and_clean_temp_stuff  - X-Ref

    Create the temp dir where backup/restore will happen and create temp ids table.

    define_execution()   X-Ref
    No description

    Class: drop_and_clean_temp_stuff  - X-Ref

    Delete the temp dir used by backup/restore (conditionally) and drop temp ids table.
    Note we delete the directory but not the corresponding log file that will be
    there until cron cleans it up.

    define_execution()   X-Ref
    No description

    skip_cleaning_temp_dir($skip)   X-Ref
    No description

    Class: create_taskbasepath_directory  - X-Ref

    Create the directory where all the task (activity/block...) information will be stored

    define_execution()   X-Ref
    No description

    Class: backup_activity_structure_step  - X-Ref

    Abstract structure step, parent of all the activity structure steps. Used to wrap the
    activity structure definition within the main <activity ...> tag.

    prepare_activity_structure($activitystructure)   X-Ref
    Wraps any activity backup structure within the common 'activity' element
    that will include common to all activities information like id, context...

    param: backup_nested_element $activitystructure the element to wrap
    return: backup_nested_element the $activitystructure wrapped by the common 'activity' element

    add_question_usages($element, $usageidname, $nameprefix = '')   X-Ref
    Attach to $element (usually attempts) the needed backup structures
    for question_usages and all the associated data.

    param: backup_nested_element $element the element that will contain all the question_usages data.
    param: string $usageidname the name of the element that holds the usageid.
    param: string $nameprefix this prefix is added to all the element names we create.

    Class: backup_questions_activity_structure_step  - X-Ref

    Abstract structure step to help activities that store question attempt data.

    Class: backup_calculate_question_categories  - X-Ref

    backup structure step in charge of calculating the categories to be
    included in backup, based in the context being backuped (module/course)
    and the already annotated questions present in backup_ids_temp

    define_execution()   X-Ref
    No description

    Class: backup_delete_temp_questions  - X-Ref

    backup structure step in charge of deleting all the questions annotated
    in the backup_ids_temp table

    define_execution()   X-Ref
    No description

    Class: backup_block_structure_step  - X-Ref

    Abstract structure step, parent of all the block structure steps. Used to wrap the
    block structure definition within the main <block ...> tag

    Class: backup_module_structure_step  - X-Ref

    structure step that will generate the module.xml file for the activity,
    accumulating various information about the activity, annotating groupings
    and completion/avail conf

    define_structure()   X-Ref
    No description

    Class: backup_section_structure_step  - X-Ref

    structure step that will generate the section.xml file for the section
    annotating files

    define_structure()   X-Ref
    No description

    Class: backup_course_structure_step  - X-Ref

    structure step that will generate the course.xml file for the course, including
    course category reference, tags, modules restriction information
    and some annotations (files & groupings)

    define_structure()   X-Ref
    No description

    Class: backup_enrolments_structure_step  - X-Ref

    structure step that will generate the enrolments.xml file for the given course

    execute_condition()   X-Ref
    Skip enrolments on the front page.

    return: bool

    define_structure()   X-Ref
    No description

    Class: backup_roles_structure_step  - X-Ref

    structure step that will generate the roles.xml file for the given context, observing
    the role_assignments setting to know if that part needs to be included

    define_structure()   X-Ref
    No description

    Class: backup_final_roles_structure_step  - X-Ref

    structure step that will generate the roles.xml containing the
    list of roles used along the whole backup process. Just raw
    list of used roles from role table

    define_structure()   X-Ref
    No description

    Class: backup_final_scales_structure_step  - X-Ref

    structure step that will generate the scales.xml containing the
    list of scales used along the whole backup process.

    define_structure()   X-Ref
    No description

    Class: backup_final_outcomes_structure_step  - X-Ref

    structure step that will generate the outcomes.xml containing the
    list of outcomes used along the whole backup process.

    define_structure()   X-Ref
    No description

    Class: backup_filters_structure_step  - X-Ref

    structure step in charge of constructing the filters.xml file for all the filters found
    in activity

    define_structure()   X-Ref
    No description

    Class: backup_comments_structure_step  - X-Ref

    structure step in charge of constructing the comments.xml file for all the comments found
    in a given context

    define_structure()   X-Ref
    No description

    Class: backup_badges_structure_step  - X-Ref

    structure step in charge of constructing the badges.xml file for all the badges found
    in a given context

    execute_condition()   X-Ref
    No description

    define_structure()   X-Ref
    No description

    Class: backup_calendarevents_structure_step  - X-Ref

    structure step in charge of constructing the calender.xml file for all the events found
    in a given context

    define_structure()   X-Ref
    No description

    Class: backup_gradebook_structure_step  - X-Ref

    structure step in charge of constructing the gradebook.xml file for all the gradebook config in the course
    NOTE: the backup of the grade items themselves is handled by backup_activity_grades_structure_step

    execute_condition()   X-Ref
    We need to decide conditionally, based on dynamic information
    about the execution of this step. Only will be executed if all
    the module gradeitems have been already included in backup


    define_structure()   X-Ref
    No description

    Class: backup_grade_history_structure_step  - X-Ref

    Step in charge of constructing the grade_history.xml file containing the grade histories.

    execute_condition()   X-Ref
    Limit the execution.

    This applies the same logic than the one applied to {@link backup_gradebook_structure_step},
    because we do not want to save the history of items which are not backed up. At least for now.

    define_structure()   X-Ref
    No description

    Class: backup_userscompletion_structure_step  - X-Ref

    structure step in charge if constructing the completion.xml file for all the users completion
    information in a given activity

    execute_condition()   X-Ref
    Skip completion on the front page.

    return: bool

    define_structure()   X-Ref
    No description

    Class: backup_groups_structure_step  - X-Ref

    structure step in charge of constructing the main groups.xml file for all the groups and
    groupings information already annotated

    define_structure()   X-Ref
    No description

    Class: backup_users_structure_step  - X-Ref

    structure step in charge of constructing the main users.xml file for all the users already
    annotated (final). Includes custom profile fields, preferences, tags, role assignments and
    overrides.

    define_structure()   X-Ref
    No description

    Class: backup_block_instance_structure_step  - X-Ref

    structure step in charge of constructing the block.xml file for one
    given block (instance and positions). If the block has custom DB structure
    that will go to a separate file (different step defined in block class)

    define_structure()   X-Ref
    No description

    Class: backup_course_logs_structure_step  - X-Ref

    structure step in charge of constructing the logs.xml file for all the log records found
    in course. Note that we are sending to backup ALL the log records having cmid = 0. That
    includes some records that won't be restoreable (like 'upload', 'calendar'...) but we do
    that just in case they become restored some day in the future

    define_structure()   X-Ref
    No description

    Class: backup_activity_logs_structure_step  - X-Ref

    structure step in charge of constructing the logs.xml file for all the log records found
    in activity

    define_structure()   X-Ref
    No description

    Class: backup_course_logstores_structure_step  - X-Ref

    Structure step in charge of constructing the logstores.xml file for the course logs.

    This backup step will backup the logs for all the enabled logstore subplugins supporting
    it, for logs belonging to the course level.
    define_structure()   X-Ref
    No description

    Class: backup_course_loglastaccess_structure_step  - X-Ref

    Structure step in charge of constructing the loglastaccess.xml file for the course logs.

    This backup step will backup the logs of the user_lastaccess table.
    define_structure()   X-Ref
    This function creates the structures for the loglastaccess.xml file.
    Expected structure would look like this.
    <loglastaccesses>
    <loglastaccess id=2>
    <userid>5</userid>
    <timeaccess>1616887341</timeaccess>
    </loglastaccess>
    </loglastaccesses>

    return: backup_nested_element

    Class: backup_activity_logstores_structure_step  - X-Ref

    Structure step in charge of constructing the logstores.xml file for the activity logs.

    Note: Activity structure is completely equivalent to the course one, so just extend it.

    Class: backup_course_competencies_structure_step  - X-Ref

    Course competencies backup structure step.

    define_structure()   X-Ref
    No description

    execute_condition()   X-Ref
    Execute conditions.

    return: bool

    Class: backup_activity_competencies_structure_step  - X-Ref

    Activity competencies backup structure step.

    define_structure()   X-Ref
    No description

    execute_condition()   X-Ref
    Execute conditions.

    return: bool

    Class: backup_inforef_structure_step  - X-Ref

    structure in charge of constructing the inforef.xml file for all the items we want
    to have referenced there (users, roles, files...)

    define_structure()   X-Ref
    No description

    Class: move_inforef_annotations_to_final  - X-Ref

    This step will get all the annotations already processed to inforef.xml file and
    transform them into 'final' annotations.

    define_execution()   X-Ref
    No description

    Class: backup_final_files_structure_step  - X-Ref

    structure in charge of constructing the files.xml file with all the
    annotated (final) files along the process. At, the same time, and
    using one specialised nested_element, will copy them form moodle storage
    to backup storage

    define_structure()   X-Ref
    No description

    Class: backup_main_structure_step  - X-Ref

    Structure step in charge of creating the main moodle_backup.xml file
    where all the information related to the backup, settings, license and

    define_structure()   X-Ref
    No description

    Class: backup_zip_contents  - X-Ref

    Execution step that will generate the final zip (.mbz) file with all the contents

    define_execution()   X-Ref


    progress($progress = file_progress::INDETERMINATE, $max = file_progress::INDETERMINATE)   X-Ref
    Implementation for file_progress interface to display unzip progress.

    param: int $progress Current progress
    param: int $max Max value

    Class: backup_store_backup_file  - X-Ref

    This step will send the generated backup file to its final destination

    define_execution()   X-Ref
    No description

    Class: backup_activity_grade_items_to_ids  - X-Ref

    This step will search for all the activity (not calculations, categories nor aggregations) grade items
    and put them to the backup_ids tables, to be used later as base to backup them

    define_execution()   X-Ref
    No description

    Class: backup_enrolments_execution_step  - X-Ref

    This step allows enrol plugins to annotate custom fields.

    define_execution()   X-Ref
    Function that will contain all the code to be executed.


    annotate_id($itemname, $itemid)   X-Ref
    Annotate a single name/id pair.
    This can be called from {@link enrol_plugin::backup_annotate_custom_fields()}.

    param: string $itemname
    param: int $itemid

    Class: backup_annotate_course_groups_and_groupings  - X-Ref

    This step will annotate all the groups and groupings belonging to the course

    define_execution()   X-Ref
    No description

    Class: backup_annotate_groups_from_groupings  - X-Ref

    This step will annotate all the groups belonging to already annotated groupings

    define_execution()   X-Ref
    No description

    Class: backup_annotate_scales_from_outcomes  - X-Ref

    This step will annotate all the scales belonging to already annotated outcomes

    define_execution()   X-Ref
    No description

    Class: backup_annotate_all_question_files  - X-Ref

    This step will generate all the file annotations for the already
    annotated (final) question_categories. It calculates the different
    contexts that are being backup and, annotates all the files
    on every context belonging to the "question" component. As far as
    we are always including *complete* question banks it is safe and
    optimal to do that in this (one pass) way

    define_execution()   X-Ref
    No description

    Class: backup_questions_structure_step  - X-Ref

    structure step in charge of constructing the questions.xml file for all the
    question categories and questions required by the backup
    and letters related to one activity

    define_structure()   X-Ref
    No description

    Class: backup_annotate_all_user_files  - X-Ref

    This step will generate all the file  annotations for the already
    annotated (final) users. Need to do this here because each user
    has its own context and structure tasks only are able to handle
    one context. Also, this step will guarantee that every user has
    its context created (req for other steps)

    define_execution()   X-Ref
    No description

    Class: backup_activity_grading_structure_step  - X-Ref

    Defines the backup step for advanced grading methods attached to the activity module

    execute_condition()   X-Ref
    Include the grading.xml only if the module supports advanced grading


    define_structure()   X-Ref
    Declares the gradable areas structures and data sources


    Class: backup_activity_grades_structure_step  - X-Ref

    structure step in charge of constructing the grades.xml file for all the grade items
    and letters related to one activity

    execute_condition()   X-Ref
    No grades on the front page.

    return: bool

    define_structure()   X-Ref
    No description

    Class: backup_activity_grade_history_structure_step  - X-Ref

    Structure step in charge of constructing the grade history of an activity.

    This step is added to the task regardless of the setting 'grade_histories'.
    The reason is to allow for a more flexible step in case the logic needs to be
    split accross different settings to control the history of items and/or grades.
    execute_condition()   X-Ref
    No grades on the front page.

    return: bool

    define_structure()   X-Ref
    No description

    Class: backup_course_completion_structure_step  - X-Ref

    Backups up the course completion information for the course.

    execute_condition()   X-Ref
    No description

    define_structure()   X-Ref
    The structure of the course completion backup

    return: backup_nested_element

    Class: backup_completion_defaults_structure_step  - X-Ref

    Backup completion defaults for each module type.

    execute_condition()   X-Ref
    To conditionally decide if one step will be executed or no


    define_structure()   X-Ref
    The structure of the course completion backup

    return: backup_nested_element

    Class: backup_contentbankcontent_structure_step  - X-Ref

    Structure step in charge of constructing the contentbank.xml file for all the contents found in a given context

    define_structure()   X-Ref
    Define structure for content bank step