Files
meetletacbfree/backup/moodle2/restore_meetletacbfree_stepslib.php

105 lines
4.4 KiB
PHP

<?php
// This file is part of Moodle - http://moodle.org/
defined('MOODLE_INTERNAL') || die();
/**
* Restore structure.
*
* @package mod_meetletacbfree
* @copyright 2026 MeetLet
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class restore_meetletacbfree_activity_structure_step extends restore_activity_structure_step {
protected function define_structure() {
$paths = [];
// Current format.
$paths[] = new restore_path_element('meetletacbfree', '/activity/meetletacbfree');
$paths[] = new restore_path_element('meetletacbfree_meeting',
'/activity/meetletacbfree/meetings/meeting');
$paths[] = new restore_path_element('meetletacbfree_long', '/activity/meetletadobeconnectbridge');
$paths[] = new restore_path_element('meetletacbfree_long_meeting',
'/activity/meetletadobeconnectbridge/meetings/meeting');
// Legacy format from pre-rename backups.
$paths[] = new restore_path_element('meetlet_legacy', '/activity/meetlet');
$paths[] = new restore_path_element('meetlet_legacy_meeting', '/activity/meetlet/meetings/meeting');
return $this->prepare_activity_structure($paths);
}
protected function process_meetletacbfree($data) {
$this->process_instance_record($data);
}
protected function process_meetletacbfree_long($data) {
$this->process_instance_record($data);
}
protected function process_meetlet_legacy($data) {
$this->process_instance_record($data);
}
protected function process_instance_record($data) {
global $DB;
$data = (object)$data;
$data->course = $this->get_courseid();
if (!isset($data->showmakeoffline)) {
$data->showmakeoffline = 1;
}
if (!isset($data->settingoverrides)) {
$data->settingoverrides = \mod_meetletacbfree\local\config::setting_overrides_json([
'waitforhost' => !empty($data->waitforhost)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'autooffline' => !empty($data->autooffline)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'showzip' => !empty($data->showzip)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'showrecordingstab' => !empty($data->showrecordingstab)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'showcontenttab' => !empty($data->showcontenttab)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'showmp4' => !empty($data->showmp4)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
'showmakeoffline' => !empty($data->showmakeoffline)
? \mod_meetletacbfree\local\config::OVERRIDE_ON
: \mod_meetletacbfree\local\config::OVERRIDE_OFF,
]);
}
if (!isset($data->participantsmode)) {
$data->participantsmode = 1;
}
$newid = $DB->insert_record('meetletacbfree', $data);
$this->apply_activity_instance($newid);
}
protected function process_meetletacbfree_meeting($data) {
$this->process_meeting_record($data, 'meetletacbfree');
}
protected function process_meetletacbfree_long_meeting($data) {
$this->process_meeting_record($data, 'meetletacbfree_long');
}
protected function process_meetlet_legacy_meeting($data) {
$this->process_meeting_record($data, 'meetlet_legacy');
}
protected function process_meeting_record($data, string $parentname) {
global $DB;
$data = (object)$data;
$data->instanceid = $this->get_new_parentid($parentname);
if (!empty($data->groupid)) {
$data->groupid = $this->get_mappingid('group', $data->groupid);
}
$DB->insert_record('meetletacbfree_meetings', $data);
}
protected function after_execute() {
$this->add_related_files('mod_meetletacbfree', 'intro', null);
}
}