Favorite plugin now "extends" Activity on NoticeAsActivity
Got this mainly from my patches to FreeSocial. The idea is to migrate also the Note activity to a plugin and have everything be handled as events, only filling out the basic "context" stuff in the Notice class.
This commit is contained in:
parent
6e481d35ed
commit
509f31af0e
@ -243,7 +243,7 @@ class EventPlugin extends MicroAppPlugin
|
|||||||
*
|
*
|
||||||
* @return ActivityObject
|
* @return ActivityObject
|
||||||
*/
|
*/
|
||||||
function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null) {
|
protected function extendActivity(Notice $stored, Activity $act, Profile $scoped=null) {
|
||||||
switch ($stored->object_type) {
|
switch ($stored->object_type) {
|
||||||
case RSVP::POSITIVE:
|
case RSVP::POSITIVE:
|
||||||
case RSVP::NEGATIVE:
|
case RSVP::NEGATIVE:
|
||||||
|
@ -187,6 +187,24 @@ class FavoritePlugin extends ActivityHandlerPlugin
|
|||||||
return $object;
|
return $object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: Put this in lib/activityhandlerplugin.php when we're ready
|
||||||
|
// with the other microapps/activityhandlers as well.
|
||||||
|
// Also it should be StartNoticeAsActivity (with a prepped Activity, including ->context etc.)
|
||||||
|
public function onEndNoticeAsActivity(Notice $stored, Activity $act, Profile $scoped=null)
|
||||||
|
{
|
||||||
|
if (!$this->isMyNotice($stored)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
common_debug('Extending activity '.$stored->id.' with '.get_called_class());
|
||||||
|
$this->extendActivity($stored, $act, $scoped);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function extendActivity(Notice $stored, Activity $act, Profile $scoped=null)
|
||||||
|
{
|
||||||
|
Fave::extendActivity($stored, $act, $scoped);
|
||||||
|
}
|
||||||
|
|
||||||
public function activityObjectFromNotice(Notice $notice)
|
public function activityObjectFromNotice(Notice $notice)
|
||||||
{
|
{
|
||||||
|
@ -271,6 +271,19 @@ class Fave extends Managed_DataObject
|
|||||||
return $object;
|
return $object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the _targeted_ notice of a verb (such as the notice that was
|
||||||
|
* _favorited_, but not the favorite activity itself).
|
||||||
|
*
|
||||||
|
* @param Notice $stored The activity notice.
|
||||||
|
*
|
||||||
|
* @throws NoResultException when it can't find what it's looking for.
|
||||||
|
*/
|
||||||
|
static public function getTargetFromStored(Notice $stored)
|
||||||
|
{
|
||||||
|
return self::fromStored($stored)->getTarget();
|
||||||
|
}
|
||||||
|
|
||||||
static public function getObjectType()
|
static public function getObjectType()
|
||||||
{
|
{
|
||||||
return 'activity';
|
return 'activity';
|
||||||
@ -312,6 +325,17 @@ class Fave extends Managed_DataObject
|
|||||||
return $object;
|
return $object;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static public function extendActivity(Notice $stored, Activity $act, Profile $scoped=null)
|
||||||
|
{
|
||||||
|
$target = self::getTargetFromStored($stored);
|
||||||
|
|
||||||
|
$act->target = $target->asActivityObject();
|
||||||
|
$act->objects = array(clone($act->target));
|
||||||
|
$act->context->replyToID = $target->getUri();
|
||||||
|
$act->context->replyToUrl = $target->getUrl();
|
||||||
|
$act->title = ActivityUtils::verbToTitle($act->verb);
|
||||||
|
}
|
||||||
|
|
||||||
static function saveActivityObject(ActivityObject $actobj, Notice $stored)
|
static function saveActivityObject(ActivityObject $actobj, Notice $stored)
|
||||||
{
|
{
|
||||||
$object = self::parseActivityObject($actobj, $stored);
|
$object = self::parseActivityObject($actobj, $stored);
|
||||||
|
Loading…
Reference in New Issue
Block a user