recipient = new NotificationUser($data['recipientID'], isset($data['recipientName']) ? $data['recipientName'] : '', isset($data['recipientDisplayname']) ? $data['recipientDisplayname'] : ($data['recipientID'] == -1 ? 'Anonym' : ($data['recipientID'] == -2 ? 'System' : 'Unbekannt'))); $this->sender = new NotificationUser($data['senderID'], isset($data['senderName']) ? $data['senderName'] : '', isset($data['senderDisplayname']) ? $data['senderDisplayname'] : ($data['senderID'] == -1 ? 'Anonym' : ($data['senderID'] == -2 ? 'System' : 'Unbekannt'))); $this->sender->setProfilePicture(isset($data['senderPicture']) ? $data['senderPicture'] : ''); $this->unread = isset($data['unread']) ? $data['unread'] : 1; $this->type = $data['type']; $this->parameters = isset($data['parameters']) ? $data['parameters'] : ''; $this->referenceID = $data['referenceID']; $this->createdAt = isset($data['createdAt']) ? $data['createdAt'] : time(); } public abstract function getNotificationLink(); public abstract function getNotificationImage(); public abstract function messageForNotification(Notification $notification); public abstract function messageForNotifications(array $notifications); public function message() { return $this->messageForNotification($this); } protected function manyNames(array $names) { $last = array_pop($names); $finalNames = ''; foreach ($names as $name) { $finalNames .= $name->sender->getName() . ', '; } return sprintf(lang('notification.multiple'), substr($finalNames, 0, -2), $last->sender->getName()); } protected function manyNamesCutoff(array $names, $realCount) { list($first, $second) = array_slice($names, 0, 2); return sprintf(lang('notification.many'), $first->sender->getName(), $second->sender->getName(), $realCount); } }