make sure whoGets() doesn't write anything
This commit is contained in:
parent
c3188fd1fe
commit
d032fc038a
@ -335,7 +335,11 @@ class Notice extends Memcached_DataObject
|
|||||||
|
|
||||||
$notice->saveTags();
|
$notice->saveTags();
|
||||||
|
|
||||||
$notice->addToInboxes();
|
$groups = $notice->saveGroups();
|
||||||
|
|
||||||
|
$recipients = $notice->saveReplies();
|
||||||
|
|
||||||
|
$notice->addToInboxes($groups, $recipients);
|
||||||
|
|
||||||
$notice->saveUrls();
|
$notice->saveUrls();
|
||||||
|
|
||||||
@ -822,7 +826,7 @@ class Notice extends Memcached_DataObject
|
|||||||
return $ids;
|
return $ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
function whoGets()
|
function whoGets($groups=null, $recipients=null)
|
||||||
{
|
{
|
||||||
$c = self::memcache();
|
$c = self::memcache();
|
||||||
|
|
||||||
@ -833,6 +837,14 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_null($groups)) {
|
||||||
|
$groups = $this->getGroups();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($recipients)) {
|
||||||
|
$recipients = $this->getReplies();
|
||||||
|
}
|
||||||
|
|
||||||
$users = $this->getSubscribedUsers();
|
$users = $this->getSubscribedUsers();
|
||||||
|
|
||||||
// FIXME: kind of ignoring 'transitional'...
|
// FIXME: kind of ignoring 'transitional'...
|
||||||
@ -845,7 +857,6 @@ class Notice extends Memcached_DataObject
|
|||||||
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
$ni[$id] = NOTICE_INBOX_SOURCE_SUB;
|
||||||
}
|
}
|
||||||
|
|
||||||
$groups = $this->saveGroups();
|
|
||||||
$profile = $this->getProfile();
|
$profile = $this->getProfile();
|
||||||
|
|
||||||
foreach ($groups as $group) {
|
foreach ($groups as $group) {
|
||||||
@ -860,8 +871,6 @@ class Notice extends Memcached_DataObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$recipients = $this->saveReplies();
|
|
||||||
|
|
||||||
foreach ($recipients as $recipient) {
|
foreach ($recipients as $recipient) {
|
||||||
|
|
||||||
if (!array_key_exists($recipient, $ni)) {
|
if (!array_key_exists($recipient, $ni)) {
|
||||||
@ -880,9 +889,9 @@ class Notice extends Memcached_DataObject
|
|||||||
return $ni;
|
return $ni;
|
||||||
}
|
}
|
||||||
|
|
||||||
function addToInboxes()
|
function addToInboxes($groups, $recipients)
|
||||||
{
|
{
|
||||||
$ni = $this->whoGets();
|
$ni = $this->whoGets($groups, $recipients);
|
||||||
|
|
||||||
Inbox::bulkInsert($this->id, array_keys($ni));
|
Inbox::bulkInsert($this->id, array_keys($ni));
|
||||||
|
|
||||||
@ -1086,6 +1095,52 @@ class Notice extends Memcached_DataObject
|
|||||||
return $recipientIds;
|
return $recipientIds;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getReplies()
|
||||||
|
{
|
||||||
|
// XXX: cache me
|
||||||
|
|
||||||
|
$ids = array();
|
||||||
|
|
||||||
|
$reply = new Reply();
|
||||||
|
$reply->selectAdd();
|
||||||
|
$reply->selectAdd('profile_id');
|
||||||
|
$reply->notice_id = $this->id;
|
||||||
|
|
||||||
|
if ($reply->find()) {
|
||||||
|
while($reply->fetch()) {
|
||||||
|
$ids[] = $reply->profile_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$reply->free();
|
||||||
|
|
||||||
|
return $ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getGroups()
|
||||||
|
{
|
||||||
|
// XXX: cache me
|
||||||
|
|
||||||
|
$ids = array();
|
||||||
|
|
||||||
|
$gi = new Group_inbox();
|
||||||
|
|
||||||
|
$gi->selectAdd();
|
||||||
|
$gi->selectAdd('group_id');
|
||||||
|
|
||||||
|
$gi->notice_id = $this->id;
|
||||||
|
|
||||||
|
if ($gi->find()) {
|
||||||
|
while ($gi->fetch()) {
|
||||||
|
$ids[] = $gi->group_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$gi->free();
|
||||||
|
|
||||||
|
return $ids;
|
||||||
|
}
|
||||||
|
|
||||||
function asAtomEntry($namespace=false, $source=false)
|
function asAtomEntry($namespace=false, $source=false)
|
||||||
{
|
{
|
||||||
$profile = $this->getProfile();
|
$profile = $this->getProfile();
|
||||||
|
Loading…
Reference in New Issue
Block a user