From 4f62900be19224a737b8c8dc39dfe0f7d19f12e3 Mon Sep 17 00:00:00 2001 From: Kumi Date: Thu, 13 Jan 2022 11:36:16 +0100 Subject: [PATCH] Blind code to use MEW --- lang/en/local_replication.php | 3 ++- trigger.php | 51 ++++++++--------------------------- 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/lang/en/local_replication.php b/lang/en/local_replication.php index cf9a81b..80546a0 100644 --- a/lang/en/local_replication.php +++ b/lang/en/local_replication.php @@ -8,4 +8,5 @@ $string['pluginname'] = $string['modulename']; $string['settings'] = 'Settings'; -$string['directory'] = 'Directory to dump exports to'; +$string['directory'] = 'Directory to dump triggers to'; +$string['directoryhelp'] = 'Full path to the directory where Moodle Export Worker is looking for its trigger files'; \ No newline at end of file diff --git a/trigger.php b/trigger.php index f3802bc..3de0538 100644 --- a/trigger.php +++ b/trigger.php @@ -2,55 +2,26 @@ require_once("../../config.php"); require_once($CFG->dirroot . '/backup/util/includes/backup_includes.php'); +if (! function_exists('str_ends_with')) { + function str_ends_with(string $haystack, string $needle): bool + { + $needle_len = strlen($needle); + return ($needle_len === 0 || 0 === substr_compare($haystack, $needle, - $needle_len)); + } +} + $id = $_GET["id"]; $course = get_course($id); $replicationconfig = get_config('local_replication'); $directory = $replicationconfig->directory; +if (!str_ends_with($directory, "/")) $directory = $directory . "/"; + $context = context_course::instance($id); if (!has_capability('local/replication:replicate', $context)) { die("User not allowed to trigger replication!"); } -$bc = new backup_controller(\backup::TYPE_1COURSE, $id, backup::FORMAT_MOODLE, - backup::INTERACTIVE_YES, backup::MODE_GENERAL, $USER->id); - -$tasks = $bc->get_plan()->get_tasks(); -foreach ($tasks as &$task) { - if ($task instanceof \backup_root_task) { - $setting = $task->get_setting('users'); - $setting->set_value('0'); - $setting = $task->get_setting('anonymize'); - $setting->set_value('1'); - $setting = $task->get_setting('role_assignments'); - $setting->set_value('0'); - $setting = $task->get_setting('filters'); - $setting->set_value('0'); - $setting = $task->get_setting('comments'); - $setting->set_value('0'); - $setting = $task->get_setting('logs'); - $setting->set_value('0'); - $setting = $task->get_setting('grade_histories'); - $setting->set_value('0'); - } -} - -$filename = $directory . '/course_' . $id . "_" . $course->category . "_" . date('U') . '.mbz'; - -$bc->set_status(backup::STATUS_AWAITING); -$bc->execute_plan(); - -$result = $bc->get_results(); - -if(isset($result['backup_destination']) && $result['backup_destination']) { - $file = $result['backup_destination']; - - if(!$file->copy_content_to($filename)) { - echo("Problems copying final backup to '". $filename . "'"); - } -} - -echo('Course is now getting replicated. Back to Course Administration'); - +touch($directory . $id . "-" . $course->category . ".mew"); \ No newline at end of file