One Hat Cyber Team
Your IP :
216.73.216.182
Server IP :
203.175.9.166
Server :
Linux tanggamus.iixcp.rumahweb.net 5.14.0-427.28.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 2 03:44:10 EDT 2024 x86_64
Server Software :
LiteSpeed
PHP Version :
7.4.33
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
cite5577
/
public_html
/
lib
/
pkp
/
classes
/
task
/
Edit File:
StatisticsReport.inc.php
<?php /** * @file classes/task/StatisticsReport.inc.php * * Copyright (c) 2013-2021 Simon Fraser University * Copyright (c) 2003-2021 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class StatisticsReport * @ingroup tasks * * @brief Class responsible to send the monthly statistics report. */ import('lib.pkp.classes.scheduledTask.ScheduledTask'); class StatisticsReport extends ScheduledTask { /** @var array List of roles that might be notified */ private $_roleIds = [ROLE_ID_MANAGER, ROLE_ID_SUB_EDITOR]; /** @var int Quantity of emails to accept for each batch */ private $_sleepEvery = 100; /** @var int Defines how many seconds the script will wait between each batch */ private $_sleepBy = 2; /** * @copydoc ScheduledTask::getName() */ public function getName() : string { return __('admin.scheduledTask.statisticsReport'); } /** * @copydoc ScheduledTask::executeActions() */ public function executeActions() : bool { @set_time_limit(0); import('lib.pkp.classes.notification.managerDelegate.EditorialReportNotificationManager'); $contextDao = Application::get()->getContextDAO(); $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); /* @var $userGroupDao UserGroupDAO */ $sentMessages = 0; for ($contexts = $contextDao->getAll(true); $context = $contexts->next(); ) { AppLocale::requireComponents( [LOCALE_COMPONENT_PKP_USER, LOCALE_COMPONENT_PKP_MANAGER, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_COMMON, LOCALE_COMPONENT_APP_COMMON], $context->getPrimaryLocale() ); $editorialReportNotificationManager = new EditorialReportNotificationManager(NOTIFICATION_TYPE_EDITORIAL_REPORT); $editorialReportNotificationManager->initialize( $context, new DateTimeImmutable('first day of previous month midnight'), new DateTimeImmutable('first day of this month midnight') ); $notifiedUsersSet = []; foreach ($this->_roleIds as $roleId) { for ($userGroups = $userGroupDao->getByRoleId($context->getId(), $roleId); $userGroup = $userGroups->next(); ) { for ($users = $userGroupDao->getUsersById($userGroup->getId(), $context->getId()); $user = $users->next(); ) { if (isset($notifiedUsersSet[$user->getId()])) { continue; } $editorialReportNotificationManager->notify($user); $notifiedUsersSet[$user->getId()] = 0; if (!(++$sentMessages % $this->_sleepEvery)) { sleep($this->_sleepBy); } } } } } return true; } }
Simpan