Server : Apache/2.4.41 (Ubuntu) System : Linux journalup 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /var/www/html/lib/pkp/classes/notification/managerDelegate/ |
<?php /** * @file classes/notification/managerDelegate/PKPApproveSubmissionNotificationManager.inc.php * * Copyright (c) 2014-2020 Simon Fraser University * Copyright (c) 2003-2020 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class PKPApproveSubmissionNotificationManager * @ingroup managerDelegate * * @brief Approve submission notification type manager delegate. */ import('lib.pkp.classes.notification.NotificationManagerDelegate'); class PKPApproveSubmissionNotificationManager extends NotificationManagerDelegate { /** * Constructor. * @param $notificationType int NOTIFICATION_TYPE_... */ function __construct($notificationType) { parent::__construct($notificationType); } /** * @copydoc PKPNotificationOperationManager::getNotificationUrl() */ function getNotificationUrl($request, $notification) { $dispatcher = Application::get()->getDispatcher(); $context = $request->getContext(); return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'workflow', 'access', $notification->getAssocId()); } /** * @copydoc PKPNotificationOperationManager::getStyleClass() */ function getStyleClass($notification) { return NOTIFICATION_STYLE_CLASS_INFORMATION; } /** * @copydoc PKPNotificationOperationManager::isVisibleToAllUsers() */ function isVisibleToAllUsers($notificationType, $assocType, $assocId) { return true; } /** * @copydoc NotificationManagerDelegate::updateNotification() */ function updateNotification($request, $userIds, $assocType, $assocId) { $submissionId = $assocId; $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */ $submission = $submissionDao->getById($submissionId); $notificationDao = DAORegistry::getDAO('NotificationDAO'); /* @var $notificationDao NotificationDAO */ $notificationTypes = array( NOTIFICATION_TYPE_APPROVE_SUBMISSION => false, NOTIFICATION_TYPE_FORMAT_NEEDS_APPROVED_SUBMISSION => false, NOTIFICATION_TYPE_VISIT_CATALOG => true, ); $isPublished = (boolean) $submission->getDatePublished(); foreach ($notificationTypes as $type => $forPublicationState) { $notificationFactory = $notificationDao->getByAssoc( ASSOC_TYPE_SUBMISSION, $submissionId, null, $type, $submission->getData('contextId') ); $notification = $notificationFactory->next(); if (!$notification && $isPublished == $forPublicationState) { // Create notification. $this->createNotification( $request, null, $type, $submission->getData('contextId'), ASSOC_TYPE_SUBMISSION, $submissionId, NOTIFICATION_LEVEL_NORMAL ); } elseif ($notification && $isPublished != $forPublicationState) { // Delete existing notification. $notificationDao->deleteObject($notification); } } } /** * @copydoc NotificationManagerDelegate.inc.php */ protected function multipleTypesUpdate() { return true; } }