Open Journal Systems  3.3.0
NotificationManager.inc.php
1 <?php
2 
17 import('lib.pkp.classes.notification.PKPNotificationManager');
18 
20  /* @var array Cache each user's most privileged role for each submission */
21  var $privilegedRoles;
22 
23 
30  function getNotificationUrl($request, $notification) {
31  $router = $request->getRouter();
32  $dispatcher = $router->getDispatcher();
33  $contextDao = Application::getContextDAO();
34  $context = $contextDao->getById($notification->getContextId());
35 
36  switch ($notification->getType()) {
37  case NOTIFICATION_TYPE_PUBLISHED_ISSUE:
38  return $dispatcher->url($request, ROUTE_PAGE, $context->getPath(), 'issue', 'current');
39  default:
40  return parent::getNotificationUrl($request, $notification);
41  }
42  }
43 
50  function getNotificationMessage($request, $notification) {
51  // Allow hooks to override default behavior
52  $message = null;
53  HookRegistry::call('NotificationManager::getNotificationMessage', array(&$notification, &$message));
54  if($message) return $message;
55 
56  switch ($notification->getType()) {
57  case NOTIFICATION_TYPE_PUBLISHED_ISSUE:
58  return __('notification.type.issuePublished');
59  case NOTIFICATION_TYPE_BOOK_REQUESTED:
60  return __('plugins.generic.booksForReview.notification.bookRequested');
61  case NOTIFICATION_TYPE_BOOK_CREATED:
62  return __('plugins.generic.booksForReview.notification.bookCreated');
63  case NOTIFICATION_TYPE_BOOK_UPDATED:
64  return __('plugins.generic.booksForReview.notification.bookUpdated');
65  case NOTIFICATION_TYPE_BOOK_DELETED:
66  return __('plugins.generic.booksForReview.notification.bookDeleted');
67  case NOTIFICATION_TYPE_BOOK_MAILED:
68  return __('plugins.generic.booksForReview.notification.bookMailed');
69  case NOTIFICATION_TYPE_BOOK_SETTINGS_SAVED:
70  return __('plugins.generic.booksForReview.notification.settingsSaved');
71  case NOTIFICATION_TYPE_BOOK_SUBMISSION_ASSIGNED:
72  return __('plugins.generic.booksForReview.notification.submissionAssigned');
73  case NOTIFICATION_TYPE_BOOK_AUTHOR_ASSIGNED:
74  return __('plugins.generic.booksForReview.notification.authorAssigned');
75  case NOTIFICATION_TYPE_BOOK_AUTHOR_DENIED:
76  return __('plugins.generic.booksForReview.notification.authorDenied');
77  case NOTIFICATION_TYPE_BOOK_AUTHOR_REMOVED:
78  return __('plugins.generic.booksForReview.notification.authorRemoved');
79  default:
80  return parent::getNotificationMessage($request, $notification);
81  }
82  }
83 
89  function _getArticleTitle($notification) {
90  assert($notification->getAssocType() == ASSOC_TYPE_SUBMISSION);
91  assert(is_numeric($notification->getAssocId()));
92  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
93  $article = $submissionDao->getById($notification->getAssocId());
94  if (!$article) return null;
95  return $article->getLocalizedTitle();
96  }
97 
103  function getStyleClass($notification) {
104  switch ($notification->getType()) {
105  case NOTIFICATION_TYPE_BOOK_REQUESTED:
106  case NOTIFICATION_TYPE_BOOK_CREATED:
107  case NOTIFICATION_TYPE_BOOK_UPDATED:
108  case NOTIFICATION_TYPE_BOOK_DELETED:
109  case NOTIFICATION_TYPE_BOOK_MAILED:
110  case NOTIFICATION_TYPE_BOOK_SETTINGS_SAVED:
111  case NOTIFICATION_TYPE_BOOK_SUBMISSION_ASSIGNED:
112  case NOTIFICATION_TYPE_BOOK_AUTHOR_ASSIGNED:
113  case NOTIFICATION_TYPE_BOOK_AUTHOR_DENIED:
114  case NOTIFICATION_TYPE_BOOK_AUTHOR_REMOVED:
115  return 'notifySuccess';
116  default: return parent::getStyleClass($notification);
117  }
118  }
119 
125  function getIconClass($notification) {
126  switch ($notification->getType()) {
127  case NOTIFICATION_TYPE_PUBLISHED_ISSUE:
128  return 'notifyIconPublished';
129  case NOTIFICATION_TYPE_NEW_ANNOUNCEMENT:
130  return 'notifyIconNewAnnouncement';
131  case NOTIFICATION_TYPE_BOOK_REQUESTED:
132  case NOTIFICATION_TYPE_BOOK_CREATED:
133  case NOTIFICATION_TYPE_BOOK_UPDATED:
134  case NOTIFICATION_TYPE_BOOK_DELETED:
135  case NOTIFICATION_TYPE_BOOK_MAILED:
136  case NOTIFICATION_TYPE_BOOK_SETTINGS_SAVED:
137  case NOTIFICATION_TYPE_BOOK_SUBMISSION_ASSIGNED:
138  case NOTIFICATION_TYPE_BOOK_AUTHOR_ASSIGNED:
139  case NOTIFICATION_TYPE_BOOK_AUTHOR_DENIED:
140  case NOTIFICATION_TYPE_BOOK_AUTHOR_REMOVED:
141  return 'notifyIconSuccess';
142  default: return parent::getIconClass($notification);
143  }
144  }
145 
149  protected function getMgrDelegate($notificationType, $assocType, $assocId) {
150  switch ($notificationType) {
151  case NOTIFICATION_TYPE_APPROVE_SUBMISSION:
152  case NOTIFICATION_TYPE_VISIT_CATALOG:
153  assert($assocType == ASSOC_TYPE_SUBMISSION && is_numeric($assocId));
154  import('classes.notification.managerDelegate.ApproveSubmissionNotificationManager');
155  return new ApproveSubmissionNotificationManager($notificationType);
156  }
157  // Otherwise, fall back on parent class
158  return parent::getMgrDelegate($notificationType, $assocType, $assocId);
159  }
160 
161 }
162 
163 
Application\getContextDAO
static getContextDAO()
Definition: Application.inc.php:137
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
NotificationManager\getNotificationMessage
getNotificationMessage($request, $notification)
Definition: NotificationManager.inc.php:53
NotificationManager\getMgrDelegate
getMgrDelegate($notificationType, $assocType, $assocId)
Definition: NotificationManager.inc.php:152
ApproveSubmissionNotificationManager
Notification manager delegate that handles notifications related with submission approval process.
Definition: ApproveSubmissionNotificationManager.inc.php:19
PKPNotificationManager
Class for Notification Manager.
Definition: PKPNotificationManager.inc.php:20
NotificationManager\$privilegedRoles
$privilegedRoles
Definition: NotificationManager.inc.php:24
NotificationManager\_getArticleTitle
_getArticleTitle($notification)
Definition: NotificationManager.inc.php:92
NotificationManager
Definition: NotificationManager.inc.php:19
NotificationManager\getStyleClass
getStyleClass($notification)
Definition: NotificationManager.inc.php:106
NotificationManager\getNotificationUrl
getNotificationUrl($request, $notification)
Definition: NotificationManager.inc.php:33
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
NotificationManager\getIconClass
getIconClass($notification)
Definition: NotificationManager.inc.php:128