Adobe Connect Bridge Marketplace edition — initial release
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
require_once($CFG->dirroot . '/mod/meetletacbmarketplace/backup/moodle2/backup_meetletacbmarketplace_stepslib.php');
|
||||
|
||||
/**
|
||||
* Backup task.
|
||||
*
|
||||
* @package mod_meetletacbmarketplace
|
||||
* @copyright 2026 MeetLet
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class backup_meetletacbmarketplace_activity_task extends backup_activity_task {
|
||||
protected function define_my_settings() {
|
||||
}
|
||||
|
||||
protected function define_my_steps() {
|
||||
$this->add_step(new backup_meetletacbmarketplace_activity_structure_step(
|
||||
'meetletacbmarketplace_structure',
|
||||
'meetletacbmarketplace.xml'
|
||||
));
|
||||
}
|
||||
|
||||
public static function encode_content_links($content) {
|
||||
global $CFG;
|
||||
$base = preg_quote($CFG->wwwroot, '/');
|
||||
$content = preg_replace("/($base\/mod\/meetletacbmarketplace\/index.php\?id=)([0-9]+)/",
|
||||
'$@MEETLETACBINDEX*$2@$', $content);
|
||||
$content = preg_replace("/($base\/mod\/meetletacbmarketplace\/view.php\?id=)([0-9]+)/",
|
||||
'$@MEETLETACBVIEWBYID*$2@$', $content);
|
||||
$content = preg_replace("/($base\/mod\/meetletadobeconnectbridge\/index.php\?id=)([0-9]+)/",
|
||||
'$@MEETLETACBINDEX*$2@$', $content);
|
||||
$content = preg_replace("/($base\/mod\/meetletadobeconnectbridge\/view.php\?id=)([0-9]+)/",
|
||||
'$@MEETLETACBVIEWBYID*$2@$', $content);
|
||||
// Legacy plugin path (pre-rename).
|
||||
$content = preg_replace("/($base\/mod\/meetlet\/index.php\?id=)([0-9]+)/", '$@MEETLETACBINDEX*$2@$', $content);
|
||||
$content = preg_replace("/($base\/mod\/meetlet\/view.php\?id=)([0-9]+)/", '$@MEETLETACBVIEWBYID*$2@$', $content);
|
||||
return $content;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
/**
|
||||
* Backup structure.
|
||||
*
|
||||
* @package mod_meetletacbmarketplace
|
||||
* @copyright 2026 MeetLet
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class backup_meetletacbmarketplace_activity_structure_step extends backup_activity_structure_step {
|
||||
protected function define_structure() {
|
||||
$userinfo = $this->get_setting_value('userinfo');
|
||||
|
||||
$meetlet = new backup_nested_element('meetletacbmarketplace', ['id'], [
|
||||
'name', 'intro', 'introformat', 'userid', 'templatescoid', 'meeturl',
|
||||
'starttime', 'endtime', 'meetingpublic', 'participants', 'grade',
|
||||
'autooffline', 'showzip', 'showofflineplayer', 'showrecordingstab', 'showcontenttab', 'showmp4',
|
||||
'showmakeoffline',
|
||||
'linkmode', 'existingscoid', 'meetinglang', 'waitforhost', 'featureaccess', 'settingoverrides',
|
||||
'participantsmode',
|
||||
'timecreated', 'timemodified',
|
||||
]);
|
||||
$meetings = new backup_nested_element('meetings');
|
||||
$meeting = new backup_nested_element('meeting', ['id'], [
|
||||
'meetingscoid', 'groupid', 'urlpath',
|
||||
]);
|
||||
|
||||
$meetlet->add_child($meetings);
|
||||
$meetings->add_child($meeting);
|
||||
|
||||
$meetlet->set_source_table('meetletacbmarketplace', ['id' => backup::VAR_ACTIVITYID]);
|
||||
$meeting->set_source_table('meetlet_marketplace_meetings', ['instanceid' => backup::VAR_PARENTID]);
|
||||
|
||||
return $this->prepare_activity_structure($meetlet);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
require_once($CFG->dirroot . '/mod/meetletacbmarketplace/backup/moodle2/restore_meetletacbmarketplace_stepslib.php');
|
||||
|
||||
/**
|
||||
* Restore task.
|
||||
*
|
||||
* @package mod_meetletacbmarketplace
|
||||
* @copyright 2026 MeetLet
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class restore_meetletacbmarketplace_activity_task extends restore_activity_task {
|
||||
protected function define_my_settings() {
|
||||
}
|
||||
|
||||
protected function define_my_steps() {
|
||||
$filename = 'meetletacbmarketplace.xml';
|
||||
$base = $this->get_taskbasepath();
|
||||
if ($base) {
|
||||
foreach (['meetletacbmarketplace.xml', 'meetletadobeconnectbridge.xml', 'meetlet.xml'] as $candidate) {
|
||||
if (file_exists($base . '/' . $candidate)) {
|
||||
$filename = $candidate;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->add_step(new restore_meetletacbmarketplace_activity_structure_step(
|
||||
'meetletacbmarketplace_structure',
|
||||
$filename
|
||||
));
|
||||
}
|
||||
|
||||
public static function define_decode_contents() {
|
||||
return [new restore_decode_content('meetletacbmarketplace', ['intro'], 'meetletacbmarketplace')];
|
||||
}
|
||||
|
||||
public static function define_decode_rules() {
|
||||
return [
|
||||
new restore_decode_rule('MEETLETACBVIEWBYID', '/mod/meetletacbmarketplace/view.php?id=$1', 'course_module'),
|
||||
new restore_decode_rule('MEETLETACBINDEX', '/mod/meetletacbmarketplace/index.php?id=$1', 'course'),
|
||||
// Legacy tokens from pre-rename backups.
|
||||
new restore_decode_rule('MEETLETVIEWBYID', '/mod/meetletacbmarketplace/view.php?id=$1', 'course_module'),
|
||||
new restore_decode_rule('MEETLETINDEX', '/mod/meetletacbmarketplace/index.php?id=$1', 'course'),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
defined('MOODLE_INTERNAL') || die();
|
||||
|
||||
/**
|
||||
* Restore structure.
|
||||
*
|
||||
* @package mod_meetletacbmarketplace
|
||||
* @copyright 2026 MeetLet
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class restore_meetletacbmarketplace_activity_structure_step extends restore_activity_structure_step {
|
||||
protected function define_structure() {
|
||||
$paths = [];
|
||||
// Current format.
|
||||
$paths[] = new restore_path_element('meetletacbmarketplace', '/activity/meetletacbmarketplace');
|
||||
$paths[] = new restore_path_element('meetletacbmarketplace_meeting',
|
||||
'/activity/meetletacbmarketplace/meetings/meeting');
|
||||
$paths[] = new restore_path_element('meetletacbmarketplace_long', '/activity/meetletadobeconnectbridge');
|
||||
$paths[] = new restore_path_element('meetletacbmarketplace_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_meetletacbmarketplace($data) {
|
||||
$this->process_instance_record($data);
|
||||
}
|
||||
|
||||
protected function process_meetletacbmarketplace_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_meetletacbmarketplace\local\config::setting_overrides_json([
|
||||
'waitforhost' => !empty($data->waitforhost)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'autooffline' => !empty($data->autooffline)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'showzip' => !empty($data->showzip)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'showrecordingstab' => !empty($data->showrecordingstab)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'showcontenttab' => !empty($data->showcontenttab)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'showmp4' => !empty($data->showmp4)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
'showmakeoffline' => !empty($data->showmakeoffline)
|
||||
? \mod_meetletacbmarketplace\local\config::OVERRIDE_ON
|
||||
: \mod_meetletacbmarketplace\local\config::OVERRIDE_OFF,
|
||||
]);
|
||||
}
|
||||
if (!isset($data->participantsmode)) {
|
||||
$data->participantsmode = 1;
|
||||
}
|
||||
$newid = $DB->insert_record('meetletacbmarketplace', $data);
|
||||
$this->apply_activity_instance($newid);
|
||||
}
|
||||
|
||||
protected function process_meetletacbmarketplace_meeting($data) {
|
||||
$this->process_meeting_record($data, 'meetletacbmarketplace');
|
||||
}
|
||||
|
||||
protected function process_meetletacbmarketplace_long_meeting($data) {
|
||||
$this->process_meeting_record($data, 'meetletacbmarketplace_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('meetlet_marketplace_meetings', $data);
|
||||
}
|
||||
|
||||
protected function after_execute() {
|
||||
$this->add_related_files('mod_meetletacbmarketplace', 'intro', null);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user