More 'scoped' profiles and typing to the functions.
Also, there's no need to send an object as a reference.
}
$act = new Activity();
- if (Event::handle('StartNoticeAsActivity', array($this, &$act))) {
+ if (Event::handle('StartNoticeAsActivity', array($this, $act, $scoped))) {
$act->id = $this->uri;
$act->time = strtotime($this->created);
$act->editLink = $act->selfLink;
}
- Event::handle('EndNoticeAsActivity', array($this, &$act));
+ Event::handle('EndNoticeAsActivity', array($this, $act, $scoped));
}
self::cacheSet(Cache::codeKey('notice:as-activity:'.$this->id), $act);
return true;
}
- function onEndNoticeAsActivity($notice, &$activity)
+ public function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null)
{
- switch ($notice->verb) {
+ switch ($stored->verb) {
case ActivityVerb::FAVORITE:
- $fave = Fave::getKV('uri', $notice->uri);
+ $fave = Fave::getKV('uri', $stored->uri);
if (!empty($fave)) {
- $notice = Notice::getKV('id', $fave->notice_id);
- if (!empty($notice)) {
- $cur = common_current_user();
- $target = $notice->asActivity($cur->getProfile());
+ $stored = Notice::getKV('id', $fave->notice_id);
+ if (!empty($stored)) {
+ $target = $stored->asActivity($scoped);
if ($target->verb == ActivityVerb::POST) {
// "I like the thing you posted"
- $activity->objects = $target->objects;
+ $act->objects = $target->objects;
} else {
// "I like that you did whatever you did"
- $activity->objects = array($target);
+ $act->objects = array($target);
}
}
}
// FIXME: do something here
break;
case ActivityVerb::JOIN:
- $mem = Group_member::getKV('uri', $notice->uri);
+ $mem = Group_member::getKV('uri', $stored->uri);
if (!empty($mem)) {
$group = $mem->getGroup();
- $activity->objects = array(ActivityObject::fromGroup($group));
+ $act->objects = array(ActivityObject::fromGroup($group));
}
break;
case ActivityVerb::LEAVE:
// FIXME: ????
break;
case ActivityVerb::FOLLOW:
- $sub = Subscription::getKV('uri', $notice->uri);
+ $sub = Subscription::getKV('uri', $stored->uri);
if (!empty($sub)) {
$profile = Profile::getKV('id', $sub->subscribed);
if (!empty($profile)) {
- $activity->objects = array($profile->asActivityObject());
+ $act->objects = array($profile->asActivityObject());
}
}
break;
*
* @return ActivityObject
*/
- function onEndNoticeAsActivity($notice, &$act) {
- switch ($notice->object_type) {
+ function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null) {
+ switch ($stored->object_type) {
case RSVP::POSITIVE:
case RSVP::NEGATIVE:
case RSVP::POSSIBLE:
- $act->verb = $notice->object_type;
+ $act->verb = $stored->object_type;
break;
}
return true;
return true;
}
- function onEndNoticeAsActivity($notice, &$activity)
+ function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null)
{
common_log(LOG_INFO, 'photo plugin: EndNoticeAsActivity');
- $photo = GNUsocialPhoto::getKV('notice_id', $notice->id);
+ $photo = GNUsocialPhoto::getKV('notice_id', $stored->id);
if(!$photo) {
common_log(LOG_INFO, 'not a photo.');
return true;
}
- $activity->objects[0]->type = ActivityObject::PHOTO;
- $activity->objects[0]->thumbnail = $photo->thumb_uri;
- $activity->objects[0]->largerImage = $photo->uri;
+ $act->objects[0]->type = ActivityObject::PHOTO;
+ $act->objects[0]->thumbnail = $photo->thumb_uri;
+ $act->objects[0]->largerImage = $photo->uri;
return false;
}
/**
* Show the notice title in Atom output
*
- * @param Notice &$notice Notice being shown
- * @param XMLStringer &$xs output context
- * @param string &$output string to be output as title
+ * @param Notice $notice Notice being shown
+ * @param Activity $act Activity object to be modified
+ * @param Profile $scoped Currently logged in/scoped profile
*
* @return boolean hook value
*/
- function onEndNoticeAsActivity($notice, &$activity)
+ function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null)
{
- $title = Notice_title::fromNotice($notice);
+ $title = Notice_title::fromNotice($stored);
if (!empty($title)) {
- foreach ($activity->objects as $obj) {
- if ($obj->id == $notice->uri) {
+ foreach ($act->objects as $obj) {
+ if ($obj->id == $stored->getUri()) {
$obj->title = $title;
break;
}