| 1234567891011121314151617181920212223242526272829303132333435363738394041 | <?phpabstract 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;		}	}}
 |