Elgg  Version 6.2
Notification.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Notifications;
4 
10 #[\AllowDynamicProperties]
11 class Notification {
12 
16  protected $from;
17 
21  protected $to;
22 
26  public $summary;
27 
31  public $subject;
32 
36  public $body;
37 
41  public $language;
42 
46  public $params;
47 
51  public $url;
52 
64  public function __construct(\ElggEntity $from, \ElggEntity $to, $language, $subject, $body, $summary = '', array $params = []) {
65  $this->from = $from;
66  $this->to = $to;
67  $this->language = $language;
68  $this->subject = $subject;
69  $this->body = $body;
70  $this->summary = $summary;
71  $this->params = $params;
72 
73  if (isset($this->params['url'])) {
74  $this->url = $this->params['url'];
75  }
76  }
77 
83  public function getSender(): \ElggEntity {
84  return $this->from;
85  }
86 
92  public function getSenderGUID(): int {
93  return $this->from->guid;
94  }
95 
101  public function getRecipient(): \ElggEntity {
102  return $this->to;
103  }
104 
110  public function getRecipientGUID(): int {
111  return $this->to->guid;
112  }
113 
119  public function toObject(): \stdClass {
120  $obj = new \stdClass();
121  $vars = get_object_vars($this);
122 
123  $vars = array_merge($this->params, $vars);
124  unset($vars['params']);
125  unset($vars['sender']);
126  unset($vars['recipient']);
127  unset($vars['subscriptions']);
128  unset($vars['action']);
129  unset($vars['object']);
130  unset($vars['handler']);
131 
132  foreach ($vars as $key => $value) {
133  if (is_object($value) && is_callable([$value, 'toObject'])) {
134  $obj->$key = $value->toObject();
135  } else {
136  $obj->$key = $value;
137  }
138  }
139 
140  return $obj;
141  }
142 
149  public function __serialize(): array {
150  $vars = get_object_vars($this);
151 
152  // unset the NotificationEventHandler as it can't be serialized and isn't needed during processing of the notification
153  unset($vars['params']['handler']);
154 
155  return $vars;
156  }
157 }
$vars
Definition: theme.php:5
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
Notification container.
getRecipient()
Get the recipient entity.
getSender()
Get the sender entity.
__serialize()
Called when the object is serialized.
getSenderGUID()
Get the sender entity guid.
toObject()
Export notification.
__construct(\ElggEntity $from, \ElggEntity $to, $language, $subject, $body, $summary='', array $params=[])
Create a notification.
getRecipientGUID()
Get the recipient entity guid.
$value
Definition: generic.php:51
if($container instanceof ElggGroup && $container->guid !=elgg_get_page_owner_guid()) $key
Definition: summary.php:44