X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Factivity.php;h=daf9f4b22effd6ce53b237f6e09c90c2809e841a;hb=586fb5a5175d7a10f5f78dd026434e48202e5451;hp=8be37c568166269d9c7e5322a00c6ed681a5b5f9;hpb=220b51d8be61e9bd316567f3ad03fffdbc4b7526;p=quix0rs-gnu-social.git diff --git a/lib/activity.php b/lib/activity.php index 8be37c5681..daf9f4b22e 100644 --- a/lib/activity.php +++ b/lib/activity.php @@ -180,7 +180,7 @@ class Activity foreach ($objectEls as $objectEl) { // Special case for embedded activities $objectType = ActivityUtils::childContent($objectEl, self::OBJECTTYPE, self::SPEC); - if (!empty($objectType) && $objectType == ActivityObject::ACTIVITY) { + if ((!empty($objectType) && $objectType == ActivityObject::ACTIVITY) || $this->verb == ActivityVerb::SHARE) { $this->objects[] = new Activity($objectEl); } else { $this->objects[] = new ActivityObject($objectEl); @@ -244,6 +244,9 @@ class Activity if (!empty($targetEl)) { $this->target = new ActivityObject($targetEl); + } elseif (ActivityUtils::compareVerbs($this->verb, array(ActivityVerb::FAVORITE))) { + // StatusNet didn't send a 'target' for their Favorite atom entries + $this->target = clone($this->objects[0]); } $this->summary = ActivityUtils::childContent($entry, 'summary'); @@ -264,7 +267,7 @@ class Activity // From APP. Might be useful. - $this->selfLink = ActivityUtils::getLink($entry, 'self', 'application/atom+xml'); + $this->selfLink = ActivityUtils::getSelfLink($entry); $this->editLink = ActivityUtils::getLink($entry, 'edit', 'application/atom+xml'); } @@ -576,8 +579,8 @@ class Activity if (!empty($this->link)) { $xs->element('link', array('rel' => 'alternate', - 'type' => 'text/html'), - $this->link); + 'type' => 'text/html', + 'href' => $this->link)); } } @@ -622,8 +625,27 @@ class Activity } if (!empty($this->context->conversation)) { - $xs->element('link', array('rel' => ActivityContext::CONVERSATION, - 'href' => $this->context->conversation)); + $convattr = []; + $conv = Conversation::getKV('uri', $this->context->conversation); + if ($conv instanceof Conversation) { + $convattr['href'] = $conv->getUrl(); + $convattr['local_id'] = $conv->getID(); + $convattr['ref'] = $conv->getUri(); + $xs->element('link', array('rel' => 'ostatus:'.ActivityContext::CONVERSATION, + 'href' => $convattr['href'])); + } else { + $convattr['ref'] = $this->context->conversation; + } + $xs->element('ostatus:'.ActivityContext::CONVERSATION, + $convattr, + $this->context->conversation); + /* Since we use XMLWriter we just use the previously hardcoded prefix for ostatus, + otherwise we should use something like this: + $xs->elementNS(array(ActivityContext::OSTATUS => 'ostatus'), // namespace + ActivityContext::CONVERSATION, + null, // attributes + $this->context->conversation); // content + */ } foreach ($this->context->attention as $attnURI=>$type) {