Clear Attentions when notice or profile is removed

This commit is contained in:
Mikael Nordfeldth 2014-03-06 14:43:36 +01:00
parent bed8cc48bc
commit 5e4a275220
2 changed files with 30 additions and 1 deletions

View File

@ -194,8 +194,8 @@ class Notice extends Managed_DataObject
$this->clearTags();
$this->clearGroupInboxes();
$this->clearFiles();
$this->clearAttentions();
// NOTE: we don't clear inboxes
// NOTE: we don't clear queue items
}
@ -1910,6 +1910,20 @@ class Notice extends Managed_DataObject
return $options;
}
function clearAttentions()
{
$att = new Attention();
$att->notice_id = $this->getID();
if ($att->find()) {
while ($att->fetch()) {
// Can't do delete() on the object directly since it won't remove all of it
$other = clone($att);
$other->delete();
}
}
}
function clearReplies()
{
$replyNotice = new Notice();

View File

@ -924,6 +924,7 @@ class Profile extends Managed_DataObject
$this->_deleteMessages();
$this->_deleteTags();
$this->_deleteBlocks();
$this->_deleteAttentions();
Avatar::deleteFromProfile($this, true);
// Warning: delete() will run on the batch objects,
@ -1025,6 +1026,20 @@ class Profile extends Managed_DataObject
$block->delete();
}
function _deleteAttentions()
{
$att = new Attention();
$att->profile_id = $this->getID();
if ($att->find()) {
while ($att->fetch()) {
// Can't do delete() on the object directly since it won't remove all of it
$other = clone($att);
$other->delete();
}
}
}
// XXX: identical to Notice::getLocation.
public function getLocation()