91334a46b5
Co-authored-by: Cursor <cursoragent@cursor.com>
105 lines
4.4 KiB
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);
|
|
}
|
|
}
|