From 16c2ae89e8e0f83071c224cd60fd308b6b8b944d Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 2 Mar 2019 12:57:47 +0000 Subject: [PATCH 1/2] Sent update mails to administrators only once --- src/Core/Update.php | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Core/Update.php b/src/Core/Update.php index 115abbab15..e4ed4a478f 100644 --- a/src/Core/Update.php +++ b/src/Core/Update.php @@ -209,7 +209,8 @@ class Update */ private static function updateFailed($update_id, $error_message) { //send the administrators an e-mail - $adminlist = DBA::select('user', ['uid', 'language', 'email'], ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email')))]); + $condition = ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))), 'parent-uid' => 0]; + $adminlist = DBA::select('user', ['uid', 'language', 'email'], $condition, ['order' => ['uid']]); // No valid result? if (!DBA::isResult($adminlist)) { @@ -219,8 +220,15 @@ class Update return; } + $sent = []; + // every admin could had different language foreach ($adminlist as $admin) { + if (in_array($admin['email'], $sent)) { + continue; + } + $sent[] = $admin['email']; + $lang = (($admin['language'])?$admin['language']:'en'); L10n::pushLang($lang); @@ -250,11 +258,19 @@ class Update private static function updateSuccessfull($from_build, $to_build) { //send the administrators an e-mail - $adminlist = DBA::select('user', ['uid', 'language', 'email'], ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email')))]); + $condition = ['email' => explode(",", str_replace(" ", "", Config::get('config', 'admin_email'))), 'parent-uid' => 0]; + $adminlist = DBA::select('user', ['uid', 'language', 'email'], $condition, ['order' => ['uid']]); if (DBA::isResult($adminlist)) { + $sent = []; + // every admin could had different language foreach ($adminlist as $admin) { + if (in_array($admin['email'], $sent)) { + continue; + } + $sent[] = $admin['email']; + $lang = (($admin['language']) ? $admin['language'] : 'en'); L10n::pushLang($lang); From 9427d7f628a7bf02da106464318edae6c093f1a6 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 2 Mar 2019 13:07:29 +0000 Subject: [PATCH 2/2] We have to fetch the data this way --- src/Core/Update.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Core/Update.php b/src/Core/Update.php index e4ed4a478f..e0a7c4a266 100644 --- a/src/Core/Update.php +++ b/src/Core/Update.php @@ -223,7 +223,7 @@ class Update $sent = []; // every admin could had different language - foreach ($adminlist as $admin) { + while ($admin = DBA::fetch($adminlist)) { if (in_array($admin['email'], $sent)) { continue; } @@ -265,7 +265,7 @@ class Update $sent = []; // every admin could had different language - foreach ($adminlist as $admin) { + while ($admin = DBA::fetch($adminlist)) { if (in_array($admin['email'], $sent)) { continue; }