save replies in the inbox

This commit is contained in:
Evan Prodromou 2009-10-28 15:33:10 -04:00
parent e25716d180
commit 2df1189465
1 changed files with 19 additions and 4 deletions

View File

@ -269,7 +269,6 @@ class Notice extends Memcached_DataObject
// XXX: do we need to change this for remote users? // XXX: do we need to change this for remote users?
$notice->saveReplies();
$notice->saveTags(); $notice->saveTags();
$notice->addToInboxes(); $notice->addToInboxes();
@ -909,6 +908,18 @@ class Notice extends Memcached_DataObject
} }
} }
$recipients = $this->saveReplies();
foreach ($recipients as $recipient) {
if (!array_key_exists($recipient, $ni)) {
$recipientUser = User::staticGet('id', $recipient);
if (!empty($recipientUser)) {
$ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY;
}
}
}
$cnt = 0; $cnt = 0;
$qryhdr = 'INSERT INTO notice_inbox (user_id, notice_id, source, created) VALUES '; $qryhdr = 'INSERT INTO notice_inbox (user_id, notice_id, source, created) VALUES ';
@ -1077,7 +1088,7 @@ class Notice extends Memcached_DataObject
$last_error = &PEAR::getStaticProperty('DB_DataObject','lastError'); $last_error = &PEAR::getStaticProperty('DB_DataObject','lastError');
common_log(LOG_ERR, 'DB error inserting reply: ' . $last_error->message); common_log(LOG_ERR, 'DB error inserting reply: ' . $last_error->message);
common_server_error(sprintf(_('DB error inserting reply: %s'), $last_error->message)); common_server_error(sprintf(_('DB error inserting reply: %s'), $last_error->message));
return; return array();
} else { } else {
$replied[$recipient->id] = 1; $replied[$recipient->id] = 1;
} }
@ -1101,7 +1112,7 @@ class Notice extends Memcached_DataObject
$id = $reply->insert(); $id = $reply->insert();
if (!$id) { if (!$id) {
common_log_db_error($reply, 'INSERT', __FILE__); common_log_db_error($reply, 'INSERT', __FILE__);
return; return array();
} else { } else {
$replied[$recipient->id] = 1; $replied[$recipient->id] = 1;
} }
@ -1110,12 +1121,16 @@ class Notice extends Memcached_DataObject
} }
} }
foreach (array_keys($replied) as $recipient) { $recipientIds = array_keys($replied);
foreach ($recipientIds as $recipient) {
$user = User::staticGet('id', $recipient); $user = User::staticGet('id', $recipient);
if ($user) { if ($user) {
mail_notify_attn($user, $this); mail_notify_attn($user, $this);
} }
} }
return $recipientIds;
} }
function asAtomEntry($namespace=false, $source=false) function asAtomEntry($namespace=false, $source=false)