save conversation id when saving a notice

This commit is contained in:
Evan Prodromou 2009-02-26 13:45:43 -08:00
parent d1f46d8552
commit baf5afb263

View File

@ -156,13 +156,20 @@ class Notice extends Memcached_DataObject
$notice->query('BEGIN'); $notice->query('BEGIN');
$notice->reply_to = $reply_to;
$notice->created = common_sql_now(); $notice->created = common_sql_now();
$notice->content = common_shorten_links($content); $notice->content = common_shorten_links($content);
$notice->rendered = common_render_content($notice->content, $notice); $notice->rendered = common_render_content($notice->content, $notice);
$notice->source = $source; $notice->source = $source;
$notice->uri = $uri; $notice->uri = $uri;
if (!empty($reply_to)) {
$reply_notice = Notice::staticGet('id', $reply_to);
if (!empty($reply_notice)) {
$notice->reply_to = $reply_to;
$notice->conversation = $reply_notice->conversation;
}
}
if (Event::handle('StartNoticeSave', array(&$notice))) { if (Event::handle('StartNoticeSave', array(&$notice))) {
$id = $notice->insert(); $id = $notice->insert();
@ -707,6 +714,7 @@ class Notice extends Memcached_DataObject
if ($recipient_notice) { if ($recipient_notice) {
$orig = clone($this); $orig = clone($this);
$this->reply_to = $recipient_notice->id; $this->reply_to = $recipient_notice->id;
$this->conversation = $recipient_notice->conversation;
$this->update($orig); $this->update($orig);
} }
} }
@ -756,6 +764,14 @@ class Notice extends Memcached_DataObject
} }
} }
// If it's not a reply, make it the root of a new conversation
if (empty($this->conversation)) {
$orig = clone($this);
$this->conversation = $this->id;
$this->update($orig);
}
foreach (array_keys($replied) as $recipient) { foreach (array_keys($replied) as $recipient) {
$user = User::staticGet('id', $recipient); $user = User::staticGet('id', $recipient);
if ($user) { if ($user) {