diff options
author | Evan Prodromou <evan@status.net> | 2009-12-16 22:14:41 -0500 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2009-12-16 22:14:41 -0500 |
commit | 530673b3cd79d2d3f1b51b013d2b764d751bc7a2 (patch) | |
tree | 26d0e31dc2db625784b82dd670f57c49f338a426 /classes/Notice.php | |
parent | 2a1468ec8b2918553b490ddaef6bdede3e2d5b1b (diff) | |
parent | 7ee875b10ffbf9fae0934426d6abda2be48d01c7 (diff) |
Merge branch '0.9.x' into testing0.9.0rc2
Diffstat (limited to 'classes/Notice.php')
-rw-r--r-- | classes/Notice.php | 43 |
1 files changed, 38 insertions, 5 deletions
diff --git a/classes/Notice.php b/classes/Notice.php index 4aec4ed55..7651d8bd5 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -175,13 +175,43 @@ class Notice extends Memcached_DataObject } } + /** + * Save a new notice and push it out to subscribers' inboxes. + * Poster's permissions are checked before sending. + * + * @param int $profile_id Profile ID of the poster + * @param string $content source message text; links may be shortened + * per current user's preference + * @param string $source source key ('web', 'api', etc) + * @param array $options Associative array of optional properties: + * string 'created' timestamp of notice; defaults to now + * int 'is_local' source/gateway ID, one of: + * Notice::LOCAL_PUBLIC - Local, ok to appear in public timeline + * Notice::REMOTE_OMB - Sent from a remote OMB service; + * hide from public timeline but show in + * local "and friends" timelines + * Notice::LOCAL_NONPUBLIC - Local, but hide from public timeline + * Notice::GATEWAY - From another non-OMB service; + * will not appear in public views + * float 'lat' decimal latitude for geolocation + * float 'lon' decimal longitude for geolocation + * int 'location_id' geoname identifier + * int 'location_ns' geoname namespace to interpret location_id + * int 'reply_to'; notice ID this is a reply to + * int 'repeat_of'; notice ID this is a repeat of + * string 'uri' permalink to notice; defaults to local notice URL + * + * @return Notice + * @throws ClientException + */ static function saveNew($profile_id, $content, $source, $options=null) { + $defaults = array('uri' => null, + 'reply_to' => null, + 'repeat_of' => null); if (!empty($options)) { + $options = $options + $defaults; extract($options); - if (!isset($reply_to)) { - $reply_to = NULL; - } } if (empty($is_local)) { @@ -966,6 +996,9 @@ class Notice extends Memcached_DataObject return true; } + /** + * @return array of integer profile IDs + */ function saveReplies() { // Alternative reply format @@ -1044,8 +1077,8 @@ class Notice extends Memcached_DataObject $recipientIds = array_keys($replied); - foreach ($recipientIds as $recipient) { - $user = User::staticGet('id', $recipient); + foreach ($recipientIds as $recipientId) { + $user = User::staticGet('id', $recipientId); if ($user) { mail_notify_attn($user, $this); } |