Elgg  Version 6.3
InstantNotificationEventHandler.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Notifications;
4 
11 
15  protected array $recipients = [];
16 
20  public function __construct(NotificationEvent $event, NotificationsService $service, array $params = []) {
21  $recipients = elgg_extract('recipients', $params);
22  unset($params['recipients']);
23 
24  parent::__construct($event, $service, $params);
25 
26  if (!empty($recipients) && is_array($recipients)) {
27  $this->setRecipients($recipients);
28  }
29  }
30 
38  final public function setRecipients(array $recipients): void {
39  $this->recipients = array_filter($recipients, function($e) {
40  return ($e instanceof \ElggUser);
41  });
42  }
43 
47  public function getSubscriptions(): array {
48  $subscriptions = [];
49 
50  $methods_override = $this->getMethodsOverride() ?: $this->getNotificationMethods();
51 
52  foreach ($this->recipients as $user) {
53  if (!empty($methods_override)) {
54  $subscriptions[$user->guid] = $methods_override;
55  continue;
56  }
57 
58  // get user default preferences
59  $subscriptions[$user->guid] = $user->getNotificationSettings('default', true);
60  }
61 
62  return $subscriptions;
63  }
64 
68  final protected function filterMutedSubscriptions(): bool {
69  return false;
70  }
71 
75  final protected function addMuteLink(): bool {
76  return false;
77  }
78 }
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Definition: actions.php:73
$user
Definition: ban.php:7
Notification Event Handler for instant notifications.
addMuteLink()
{Add a mute link in the email notification.bool}
setRecipients(array $recipients)
Set the recipients of the notification.
__construct(NotificationEvent $event, NotificationsService $service, array $params=[])
{}
getSubscriptions()
{Returns subscriptions for the event.array}
filterMutedSubscriptions()
{Should muted subscribers be filtered.bool 4.1}
A notification event handler which isn't configurable by a user.
elgg_extract($key, $array, $default=null, bool $strict=true)
Checks for $array[$key] and returns its value if it exists, else returns $default.
Definition: elgglib.php:240
Notification event interface.
if(empty($methods)) $subscriptions