]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Update.php
Merge pull request #9039 from MrPetovan/task/frio-accent-scheme
[friendica.git] / src / Core / Update.php
index 2a3b3a68d69ad9b26bcd37cc6a9578ca0ddb8c1a..827029d50e184a52a5f93468cb0409d8242f657d 100644 (file)
@@ -1,4 +1,23 @@
 <?php
+/**
+ * @copyright Copyright (C) 2020, Friendica
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\Core;
 
@@ -108,7 +127,7 @@ class Update
 
                                        // run the pre_update_nnnn functions in update.php
                                        for ($x = $stored + 1; $x <= $current; $x++) {
-                                               $r = self::runUpdateFunction($x, 'pre_update');
+                                               $r = self::runUpdateFunction($x, 'pre_update', $sendMail);
                                                if (!$r) {
                                                        DI::config()->set('system', 'update', Update::FAILED);
                                                        DI::lock()->release('dbupdate');
@@ -137,7 +156,7 @@ class Update
 
                                        // run the update_nnnn functions in update.php
                                        for ($x = $stored + 1; $x <= $current; $x++) {
-                                               $r = self::runUpdateFunction($x, 'update');
+                                               $r = self::runUpdateFunction($x, 'update', $sendMail);
                                                if (!$r) {
                                                        DI::config()->set('system', 'update', Update::FAILED);
                                                        DI::lock()->release('dbupdate');
@@ -162,13 +181,14 @@ class Update
        /**
         * Executes a specific update function
         *
-        * @param int    $x      the DB version number of the function
-        * @param string $prefix the prefix of the function (update, pre_update)
-        *
+        * @param int    $x        the DB version number of the function
+        * @param string $prefix   the prefix of the function (update, pre_update)
+        * @param bool   $sendMail whether to send emails on success/failure
+
         * @return bool true, if the update function worked
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
         */
-       public static function runUpdateFunction($x, $prefix)
+       public static function runUpdateFunction($x, $prefix, bool $sendMail = true)
        {
                $funcname = $prefix . '_' . $x;
 
@@ -188,11 +208,13 @@ class Update
                                $retval = $funcname();
 
                                if ($retval) {
-                                       //send the administrator an e-mail
-                                       self::updateFailed(
-                                               $x,
-                                               DI::l10n()->t('Update %s failed. See error logs.', $x)
-                                       );
+                                       if ($sendMail) {
+                                               //send the administrator an e-mail
+                                               self::updateFailed(
+                                                       $x,
+                                                       DI::l10n()->t('Update %s failed. See error logs.', $x)
+                                               );
+                                       }
                                        Logger::error('Update function ERROR.', ['function' => $funcname, 'retval' => $retval]);
                                        DI::lock()->release('dbupdate_function');
                                        return false;
@@ -252,7 +274,7 @@ class Update
                        }
                        $sent[] = $admin['email'];
 
-                       $lang = (($admin['language']) ? $admin['language'] : 'en');
+                       $lang = $admin['language'] ?? 'en';
                        $l10n = DI::l10n()->withLang($lang);
 
                        $preamble = Strings::deindent($l10n->t("
@@ -264,11 +286,11 @@ class Update
                        $body     = $l10n->t("The error message is\n[pre]%s[/pre]", $error_message);
 
                        $email = DI::emailer()
-                                  ->newSystemMail($l10n)
-                                  ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble, $body)
-                                  ->forUser($admin['uid'] ?? 0)
-                                  ->withRecipient($admin['email'])
-                                  ->build();
+                               ->newSystemMail()
+                               ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble, $body)
+                               ->forUser($admin)
+                               ->withRecipient($admin['email'])
+                               ->build();
                        DI::emailer()->send($email);
                }
 
@@ -300,11 +322,11 @@ class Update
                                        $from_build, $to_build));
 
                                $email = DI::emailer()
-                                          ->newSystemMail($l10n)
-                                          ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble)
-                                          ->forUser($admin['uid'] ?? 0)
-                                          ->withRecipient($admin['email'])
-                                          ->build();
+                                       ->newSystemMail()
+                                       ->withMessage($l10n->t('[Friendica Notify] Database update'), $preamble)
+                                       ->forUser($admin)
+                                       ->withRecipient($admin['email'])
+                                       ->build();
                                DI::emailer()->send($email);
                        }
                }