From 9c5febc47cae0471aec31b2fda8dd16c453f6682 Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 25 May 2023 14:54:35 +0800 Subject: [PATCH] MDL-78346 tool_langimport: Print any notifications before redirect --- admin/tool/langimport/classes/controller.php | 21 ++++++++++++++++++++ admin/tool/langimport/index.php | 6 +++--- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/admin/tool/langimport/classes/controller.php b/admin/tool/langimport/classes/controller.php index 0c827b4c2f3..494d48c19d3 100644 --- a/admin/tool/langimport/classes/controller.php +++ b/admin/tool/langimport/classes/controller.php @@ -24,6 +24,8 @@ namespace tool_langimport; +use moodle_url; + defined('MOODLE_INTERNAL') || die(); require_once($CFG->libdir.'/filelib.php'); require_once($CFG->libdir.'/componentlib.class.php'); @@ -59,6 +61,25 @@ class controller { $this->availablelangs = $this->installer->get_remote_list_of_languages(); } + /** + * Redirect to the specified url, outputting any required messages. + * + * @param moodle_url $url + */ + public function redirect(moodle_url $url): void { + if ($this->info) { + $info = implode('
', $this->info); + \core\notification::success($info); + } + + if ($this->errors) { + $info = implode('
', $this->errors); + \core\notification::error($info); + } + + redirect($url); + } + /** * Install language packs provided * diff --git a/admin/tool/langimport/index.php b/admin/tool/langimport/index.php index b4bd4a47171..e5057a625db 100644 --- a/admin/tool/langimport/index.php +++ b/admin/tool/langimport/index.php @@ -76,12 +76,12 @@ if (($mode == INSTALLATION_OF_SELECTED_LANG) and confirm_sesskey() and !empty($p if (is_array($pack) && count($pack) > 1) { // Installing multiple languages can take a while - perform it asynchronously in the background. $controller->schedule_languagepacks_installation($pack); - redirect($PAGE->url); + $controller->redirect($PAGE->url); } else { // Single language pack to be installed synchronously. It should be reasonably quick and can be used for debugging, too. core_php_time_limit::raise(); $controller->install_languagepacks($pack); - redirect($PAGE->url); + $controller->redirect($PAGE->url); } } @@ -110,7 +110,7 @@ if ($mode == DELETION_OF_SELECTED_LANG and (!empty($uninstalllang) or !empty($co foreach ($uninstalllang as $ulang) { $controller->uninstall_language($ulang); } - redirect($PAGE->url); + $controller->redirect($PAGE->url); } }