summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--actions/postnotice.php2
-rw-r--r--classes/Notice.php12
-rw-r--r--lib/stream.php4
3 files changed, 12 insertions, 6 deletions
diff --git a/actions/postnotice.php b/actions/postnotice.php
index 261593c86..e5a3919ad 100644
--- a/actions/postnotice.php
+++ b/actions/postnotice.php
@@ -74,7 +74,7 @@ class PostnoticeAction extends Action {
}
$notice = Notice::staticGet('uri', $notice_uri);
if (!$notice) {
- $notice = Notice::saveNew($remote_profile->id, $content, 'omb', 0);
+ $notice = Notice::saveNew($remote_profile->id, $content, 'omb', 0, $notice_uri);
if (is_string($notice)) {
common_server_serror($notice, 500);
return false;
diff --git a/classes/Notice.php b/classes/Notice.php
index 57adb7ef8..8c2097589 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -75,8 +75,8 @@ class Notice extends DB_DataObject
}
return true;
}
-
- static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL) {
+
+ static function saveNew($profile_id, $content, $source=NULL, $is_local=1, $reply_to=NULL, $uri=NULL) {
$notice = new Notice();
$notice->profile_id = $profile_id;
@@ -96,12 +96,18 @@ class Notice extends DB_DataObject
}
$orig = clone($notice);
- $notice->uri = common_notice_uri($notice);
+ if ($uri) {
+ $notice->uri = $uri;
+ } else {
+ $notice->uri = common_notice_uri($notice);
+ }
if (!$notice->update($orig)) {
return _('Problem saving notice.');
}
+ # XXX: do we need to change this for remote users?
+
common_save_replies($notice);
$notice->saveTags();
diff --git a/lib/stream.php b/lib/stream.php
index b94033d6a..fbdba91c9 100644
--- a/lib/stream.php
+++ b/lib/stream.php
@@ -96,8 +96,8 @@ class StreamAction extends Action {
}
common_element_end('p');
$noticeurl = common_local_url('shownotice', array('notice' => $notice->id));
- # XXX: we need to figure this out better
- if ($notice->uri != $noticeurl && preg_match('/^http/', $notice->uri)) {
+ # XXX: we need to figure this out better. Is this right?
+ if (strcmp($notice->uri, $noticeurl) != 0 && preg_match('/^http/', $notice->uri)) {
$noticeurl = $notice->uri;
}
common_element_start('p', 'time');