Add events for favor and disfavor

Added events to core code for when someone favors or disfavors a
notice.
This commit is contained in:
Evan Prodromou 2010-02-20 12:03:32 -05:00
parent 866b647062
commit 36d21fa716
2 changed files with 56 additions and 7 deletions

View File

@ -729,3 +729,22 @@ StartGetProfileUri: When determining the canonical URI for a given profile
EndGetProfileUri: After determining the canonical URI for a given profile EndGetProfileUri: After determining the canonical URI for a given profile
- $profile: the current profile - $profile: the current profile
- &$uri: the URI - &$uri: the URI
StartFavorNotice: Saving a notice as a favorite
- $profile: profile of the person faving (can be remote!)
- $notice: notice being faved
- &$fave: Favor object; null to start off with, but feel free to override.
EndFavorNotice: After saving a notice as a favorite
- $profile: profile of the person faving (can be remote!)
- $notice: notice being faved
StartDisfavorNotice: Saving a notice as a favorite
- $profile: profile of the person faving (can be remote!)
- $notice: notice being faved
- &$result: result of the disfavoring (if you override)
EndDisfavorNotice: After saving a notice as a favorite
- $profile: profile of the person faving (can be remote!)
- $notice: notice being faved

View File

@ -21,17 +21,47 @@ class Fave extends Memcached_DataObject
/* the code above is auto generated do not remove the tag below */ /* the code above is auto generated do not remove the tag below */
###END_AUTOCODE ###END_AUTOCODE
static function addNew($user, $notice) { static function addNew($profile, $notice) {
$fave = new Fave();
$fave->user_id = $user->id; $fave = null;
$fave->notice_id = $notice->id;
if (!$fave->insert()) { if (Event::handle('StartFavorNotice', array($profile, $notice, &$fave))) {
common_log_db_error($fave, 'INSERT', __FILE__);
return false; $fave = new Fave();
$fave->user_id = $profile->id;
$fave->notice_id = $notice->id;
if (!$fave->insert()) {
common_log_db_error($fave, 'INSERT', __FILE__);
return false;
}
Event::handle('EndFavorNotice', array($profile, $notice));
} }
return $fave; return $fave;
} }
function delete()
{
$profile = Profile::staticGet('id', $this->user_id);
$notice = Notice::staticGet('id', $this->notice_id);
$result = null;
if (Event::handle('StartDisfavorNotice', array($profile, $notice, &$result))) {
$result = parent::delete();
if ($result) {
Event::handle('EndDisfavorNotice', array($profile, $notice));
}
}
return $result;
}
function pkeyGet($kv) function pkeyGet($kv)
{ {
return Memcached_DataObject::pkeyGet('Fave', $kv); return Memcached_DataObject::pkeyGet('Fave', $kv);