X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Factivityobject.php;fp=lib%2Factivityobject.php;h=a47928e871b0f2d7af6f651027bf207ddf4e0e0c;hb=31c1177970124cee31823cab3a11542c23b4126d;hp=241f99564f214287cfd2bae9480054be916a334b;hpb=0a71622aa731c62c89ba84ef86d21fd168521ee1;p=quix0rs-gnu-social.git diff --git a/lib/activityobject.php b/lib/activityobject.php index 241f99564f..a47928e871 100644 --- a/lib/activityobject.php +++ b/lib/activityobject.php @@ -64,6 +64,7 @@ class ActivityObject const BOOKMARK = 'http://activitystrea.ms/schema/1.0/bookmark'; const PERSON = 'http://activitystrea.ms/schema/1.0/person'; const GROUP = 'http://activitystrea.ms/schema/1.0/group'; + const _LIST = 'http://activitystrea.ms/schema/1.0/list'; // LIST is reserved const PLACE = 'http://activitystrea.ms/schema/1.0/place'; const COMMENT = 'http://activitystrea.ms/schema/1.0/comment'; // ^^^^^^^^^^ tea! @@ -92,6 +93,7 @@ class ActivityObject public $title; public $summary; public $content; + public $owner; public $link; public $source; public $avatarLinks = array(); @@ -168,6 +170,10 @@ class ActivityObject Activity::MEDIA ); } + if ($this->type == self::_LIST) { + $owner = ActivityUtils::child($this->element, Activity::AUTHOR, Activity::SPEC); + $this->owner = new ActivityObject($owner); + } } private function _fromAuthor($element) @@ -520,13 +526,29 @@ class ActivityObject AVATAR_MINI_SIZE); $object->poco = PoCo::fromGroup($group); - - Event::handle('EndActivityObjectFromGroup', array($group, &$object)); + Event::handle('EndActivityObjectFromGroup', array($group, &$object)); } return $object; } + static function fromPeopletag($ptag) + { + $object = new ActivityObject(); + if (Event::handle('StartActivityObjectFromPeopletag', array($ptag, &$object))) { + $object->type = ActivityObject::_LIST; + + $object->id = $ptag->getUri(); + $object->title = $ptag->tag; + $object->summary = $ptag->description; + $object->link = $ptag->homeUrl(); + $object->owner = Profile::staticGet('id', $ptag->tagger); + $object->poco = PoCo::fromProfile($object->owner); + Event::handle('EndActivityObjectFromPeopletag', array($ptag, &$object)); + } + return $object; + } + function outputTo($xo, $tag='activity:object') { if (!empty($tag)) { @@ -585,6 +607,11 @@ class ActivityObject ); } + if(!empty($this->owner)) { + $owner = $this->owner->asActivityNoun(self::AUTHOR); + $xo->raw($owner); + } + if ($this->type == ActivityObject::PERSON || $this->type == ActivityObject::GROUP) { @@ -602,6 +629,7 @@ class ActivityObject } } + if (!empty($this->geopoint)) { $xo->element( 'georss:point',