diff options
| author | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
|---|---|---|
| committer | Philipp Schüttlöffel <schuettloeffel@zqs.uni-hannover.de> | 2024-09-24 10:53:31 +0200 |
| commit | 4459dd7917f4d1c34f40bb68f0e991e9c3d53e4c (patch) | |
| tree | 5c07151ae61276d334e88f6309c30d439a85c12e /lib/cronjobs/send_mail_notifications.class.php | |
| parent | da0022e5c1abbf9825ae76debaabdff7e8623bb4 (diff) | |
| parent | 97a188592c679890a25c37ab78463add76a52ff7 (diff) | |
Merge branch 'main' into issue-3911issue-3911
Diffstat (limited to 'lib/cronjobs/send_mail_notifications.class.php')
| -rw-r--r-- | lib/cronjobs/send_mail_notifications.class.php | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/lib/cronjobs/send_mail_notifications.class.php b/lib/cronjobs/send_mail_notifications.class.php deleted file mode 100644 index 5565218..0000000 --- a/lib/cronjobs/send_mail_notifications.class.php +++ /dev/null @@ -1,141 +0,0 @@ -<?php -/** - * send_mail_notifications.php - Sends daily email notifications. - * - * @author André Noack <noack@data-quest.de>, Suchi & Berg GmbH <info@data-quest.de> - * @author Jan-Hendrik Willms <tleilax+studip@gmail.com> - * @access public - */ - -// +---------------------------------------------------------------------------+ -// This file is part of Stud.IP -// send_mail_notifications.php -// -// Copyright (C) 2013 Jan-Hendrik Willms <tleilax+studip@gmail.com> -// +---------------------------------------------------------------------------+ -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or 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 General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// +---------------------------------------------------------------------------+ - - -// TODO: notifications for plugins not implemented - -class SendMailNotificationsJob extends CronJob -{ - /** - * Returns the name of the cronjob. - */ - public static function getName() - { - return _('Versendet tägliche E-Mailbenachrichtigungen'); - } - - /** - * Returns the description of the cronjob. - */ - public static function getDescription() - { - return _('Versendet die täglichen E-Mailbenachrichtigungen an alle Nutzer, die diese aktiviert haben'); - } - - /** - * Setup method. Loads neccessary classes and checks environment. Will - * bail out with an exception if environment does not match requirements. - */ - public function setUp() - { - require_once 'lib/dates.inc.php'; - - if (!Config::get()->MAIL_NOTIFICATION_ENABLE) { - throw new Exception('Mail notifications are disabled in this Stud.IP installation.'); - } - if (empty($GLOBALS['ABSOLUTE_URI_STUDIP'])) { - throw new Exception('To use mail notifications you MUST set correct values for $ABSOLUTE_URI_STUDIP in config_local.inc.php!'); - } - } - - /** - * Return the paremeters for this cronjob. - * - * @return Array Parameters. - */ - public static function getParameters() - { - return [ - 'verbose' => [ - 'type' => 'boolean', - 'default' => false, - 'status' => 'optional', - 'description' => _('Sollen Ausgaben erzeugt werden (sind später im Log des Cronjobs sichtbar)'), - ], - ]; - } - - /** - * Executes the cronjob. - * - * @param mixed $last_result What the last execution of this cronjob - * returned. - * @param Array $parameters Parameters for this cronjob instance which - * were defined during scheduling. - * Only valid parameter at the moment is - * "verbose" which toggles verbose output while - * purging the cache. - */ - public function execute($last_result, $parameters = []) - { - $cli_user = $GLOBALS['user']; - - $notification = new ModulesNotification(); - - $query = "SELECT DISTINCT user_id - FROM seminar_user_notifications - JOIN seminar_user USING (user_id, seminar_id)"; - DBManager::get()->fetchFirst( - $query, - [], - function ($user_id) use ($parameters, $notification) { - $user = User::find($user_id); - if (!$user || $user->isBlocked()) { - return; - } - - $GLOBALS['user'] = new Seminar_User($user); - - $ok = false; - $mailmessage = $notification->getAllNotifications($user->id); - - if ($mailmessage) { - setTempLanguage('', $user->preferred_language); - - $ok = StudipMail::sendMessage( - $user->email, - "[" . Config::get()->UNI_NAME_CLEAN . "] " . _('Tägliche Benachrichtigung'), - $mailmessage['text'], - $user->config->MAIL_AS_HTML ? $mailmessage['html'] : null - ); - } - - // Unset user configuration cache to preserve memory - UserConfig::set($user->id, null); - - // Log results - if ($ok !== false && $parameters['verbose']) { - echo $user->username . ':' . $ok . "\n"; - } - } - ); - - $GLOBALS['user'] = $cli_user; - } -} |
