1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- abstract class SiteNotificationFactory {
- /**
- * Create a site notification
- *
- * @param ElggUser $recipient Recipient of the notification
- * @param string $message Notification message
- * @param ElggUser $actor User who caused the notification event
- * @param ElggData $object Optional object involved in the notification event
- * @return SiteNotification|null
- */
- public static function create($recipient, $message, $actor, $object = null) {
- $note = new SiteNotification();
- $note->owner_guid = $recipient->guid;
- $note->container_guid = $recipient->guid;
- $note->access_id = ACCESS_PRIVATE;
- $note->description = $message;
- if ($object) {
- // TODO Add support for setting an URL for a notification about a new relationship
- switch ($object->getType()) {
- case 'annotation':
- // Annotations do not have an URL so we use the entity URL
- $note->setURL($object->getEntity()->getURL());
- break;
- default:
- $note->setURL($object->getURL());
- }
- }
- $note->setRead(false);
- if ($note->save()) {
- $note->setActor($actor);
- return $note;
- } else {
- return null;
- }
- }
- }
|