X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmicroappplugin.php;h=ab6d5651579c17faf7cd0dd758bf838bdbee8c28;hb=6f9c277494348307f5623bfecc6340927cae6d9c;hp=93b70a03242b6f99cded929715131965e3f3ab65;hpb=8ffae63b384cf688adc6288c3d53a883f11777e4;p=quix0rs-gnu-social.git diff --git a/lib/microappplugin.php b/lib/microappplugin.php index 93b70a0324..ab6d565157 100644 --- a/lib/microappplugin.php +++ b/lib/microappplugin.php @@ -212,6 +212,44 @@ abstract class MicroAppPlugin extends Plugin in_array($activity->objects[0]->type, $types)); } + /** + * Called when generating Atom XML ActivityStreams output from an + * ActivityObject belonging to this plugin. Gives the plugin + * a chance to add custom output. + * + * Note that you can only add output of additional XML elements, + * not change existing stuff here. + * + * If output is already handled by the base Activity classes, + * you can leave this base implementation as a no-op. + * + * @param ActivityObject $obj + * @param XMLOutputter $out to add elements at end of object + */ + function activityObjectOutputAtom(ActivityObject $obj, XMLOutputter $out) + { + // default is a no-op + } + + /** + * Called when generating JSON ActivityStreams output from an + * ActivityObject belonging to this plugin. Gives the plugin + * a chance to add custom output. + * + * Modify the array contents to your heart's content, and it'll + * all get serialized out as JSON. + * + * If output is already handled by the base Activity classes, + * you can leave this base implementation as a no-op. + * + * @param ActivityObject $obj + * @param array &$out JSON-targeted array which can be modified + */ + public function activityObjectOutputJson(ActivityObject $obj, array &$out) + { + // default is a no-op + } + /** * When a notice is deleted, delete the related objects * by calling the overridable $this->deleteRelated(). @@ -308,8 +346,9 @@ abstract class MicroAppPlugin extends Plugin 'url' => $object->link, 'is_local' => Notice::REMOTE_OMB, 'source' => 'ostatus'); - - $this->saveNoticeFromActivity($activity, $actor); + + // $actor is an ostatus_profile + $this->saveNoticeFromActivity($activity, $actor->localProfile(), $options); return false; } @@ -365,7 +404,8 @@ abstract class MicroAppPlugin extends Plugin 'is_local' => Notice::REMOTE_OMB, 'source' => 'ostatus'); - $this->saveNoticeFromActivity($activity, $actor, $options); + // $actor is an ostatus_profile + $this->saveNoticeFromActivity($activity, $actor->localProfile(), $options); return false; } @@ -389,6 +429,7 @@ abstract class MicroAppPlugin extends Plugin $options = array('source' => 'atompub'); + // $user->getProfile() is a Profile $this->saveNoticeFromActivity($activity, $user->getProfile(), $options); @@ -421,6 +462,7 @@ abstract class MicroAppPlugin extends Plugin 'url' => $object->link, 'source' => 'restore'); + // $user->getProfile() is a Profile $saved = $this->saveNoticeFromActivity($activity, $user->getProfile(), $options); @@ -435,6 +477,46 @@ abstract class MicroAppPlugin extends Plugin return true; } + /** + * Event handler gives the plugin a chance to add custom + * Atom XML ActivityStreams output from a previously filled-out + * ActivityObject. + * + * The atomOutput method is called if it's one of + * our matching types. + * + * @param ActivityObject $obj + * @param XMLOutputter $out to add elements at end of object + * @return boolean hook return value + */ + function onEndActivityObjectOutputAtom(ActivityObject $obj, XMLOutputter $out) + { + if (in_array($obj->type, $this->types())) { + $this->activityObjectOutputAtom($obj, $out); + } + return true; + } + + /** + * Event handler gives the plugin a chance to add custom + * JSON ActivityStreams output from a previously filled-out + * ActivityObject. + * + * The activityObjectOutputJson method is called if it's one of + * our matching types. + * + * @param ActivityObject $obj + * @param array &$out JSON-targeted array which can be modified + * @return boolean hook return value + */ + function onEndActivityObjectOutputJson(ActivityObject $obj, array &$out) + { + if (in_array($obj->type, $this->types())) { + $this->activityObjectOutputJson($obj, &$out); + } + return true; + } + function onStartShowEntryForms(&$tabs) { $tabs[$this->tag()] = $this->appTitle(); @@ -443,8 +525,6 @@ abstract class MicroAppPlugin extends Plugin function onStartMakeEntryForm($tag, $out, &$form) { - $this->log(LOG_INFO, "onStartMakeEntryForm() called for tag '$tag'"); - if ($tag == $this->tag()) { $form = $this->entryForm($out); return false;