From 6e481d35edf41fbce4ba0d8247f7c17b6369de1f Mon Sep 17 00:00:00 2001 From: Mikael Nordfeldth Date: Mon, 28 Jul 2014 09:40:07 +0200 Subject: [PATCH] Start/End NoticeAsActivity modifications More 'scoped' profiles and typing to the functions. Also, there's no need to send an object as a reference. --- classes/Notice.php | 4 +-- plugins/Activity/ActivityPlugin.php | 25 +++++++++---------- plugins/Event/EventPlugin.php | 6 ++--- .../GNUsocialPhotos/GNUsocialPhotosPlugin.php | 10 ++++---- plugins/NoticeTitle/NoticeTitlePlugin.php | 14 +++++------ 5 files changed, 29 insertions(+), 30 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index e9875d3424..3a71e4161f 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1751,7 +1751,7 @@ class Notice extends Managed_DataObject } $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); @@ -1898,7 +1898,7 @@ class Notice extends Managed_DataObject $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); diff --git a/plugins/Activity/ActivityPlugin.php b/plugins/Activity/ActivityPlugin.php index 6dc9730544..3f2cee11d2 100644 --- a/plugins/Activity/ActivityPlugin.php +++ b/plugins/Activity/ActivityPlugin.php @@ -308,22 +308,21 @@ class ActivityPlugin extends Plugin 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); } } } @@ -332,21 +331,21 @@ class ActivityPlugin extends Plugin // 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; diff --git a/plugins/Event/EventPlugin.php b/plugins/Event/EventPlugin.php index 9ec709af9a..a5ddc47255 100644 --- a/plugins/Event/EventPlugin.php +++ b/plugins/Event/EventPlugin.php @@ -243,12 +243,12 @@ class EventPlugin extends MicroAppPlugin * * @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; diff --git a/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php b/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php index c82efd0c59..36956e5b9b 100644 --- a/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php +++ b/plugins/GNUsocialPhotos/GNUsocialPhotosPlugin.php @@ -68,18 +68,18 @@ class GNUsocialPhotosPlugin extends Plugin 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; } diff --git a/plugins/NoticeTitle/NoticeTitlePlugin.php b/plugins/NoticeTitle/NoticeTitlePlugin.php index 4227703bfd..1b910cc408 100644 --- a/plugins/NoticeTitle/NoticeTitlePlugin.php +++ b/plugins/NoticeTitle/NoticeTitlePlugin.php @@ -217,19 +217,19 @@ class NoticeTitlePlugin extends Plugin /** * 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; }