]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/microappplugin.php
made the input-form switcher work, kinda
[quix0rs-gnu-social.git] / lib / microappplugin.php
index 1cdbe965e6c043a745a1a604cf349c9e5020f585..0b02f5da52ea1d991c16ed7ff9d46b20d464451e 100644 (file)
@@ -54,7 +54,7 @@ abstract class MicroAppPlugin extends Plugin
     abstract function appTitle();
     abstract function tag();
     abstract function types();
-    abstract function saveNoticeFromActivity($activity, $actor);
+    abstract function saveNoticeFromActivity($activity, $actor, $options);
     abstract function activityObjectFromNotice($notice);
     abstract function showNotice($notice, $out);
     abstract function entryForm($out);
@@ -157,6 +157,13 @@ abstract class MicroAppPlugin extends Plugin
                 throw new ClientException(_('Can\'t get author for activity.'));
             }
 
+            $object = $activity->objects[0];
+
+            $options = array('uri' => $object->id,
+                             'url' => $object->link,
+                             'is_local' => Notice::REMOTE_OMB,
+                             'source' => 'ostatus');
+            
             $this->saveNoticeFromActivity($activity, $actor);
 
             return false;
@@ -196,7 +203,7 @@ abstract class MicroAppPlugin extends Plugin
                 if (!in_array($uri, $activity->context->attention) &&
                     (empty($original) ||
                      $original->profile_id != $target->id)) {
-                    throw new ClientException(_("Bookmark not posted ".
+                    throw new ClientException(_("Object not posted ".
                                                 "to this user."));
                 }
             } else {
@@ -206,7 +213,14 @@ abstract class MicroAppPlugin extends Plugin
 
             $actor = Ostatus_profile::ensureActivityObjectProfile($activity->actor);
 
-            $this->saveNoticeFromActivity($activity, $actor);
+            $object = $activity->objects[0];
+
+            $options = array('uri' => $object->id,
+                             'url' => $object->link,
+                             'is_local' => Notice::REMOTE_OMB,
+                             'source' => 'ostatus');
+
+            $this->saveNoticeFromActivity($activity, $actor, $options);
 
             return false;
         }
@@ -258,8 +272,8 @@ abstract class MicroAppPlugin extends Plugin
 
             $obj = $activity->objects[0];
 
-            $options = array('uri' => $bookmark->id,
-                             'url' => $bookmark->link,
+            $options = array('uri' => $object->id,
+                             'url' => $object->link,
                              'source' => 'restore');
 
             $saved = $this->saveNoticeFromActivity($activity,
@@ -275,4 +289,22 @@ abstract class MicroAppPlugin extends Plugin
 
         return true;
     }
+
+    function onStartShowEntryForms(&$tabs)
+    {
+        $tabs[$this->tag()] = $this->appTitle();
+        return true;
+    }
+
+    function onStartMakeEntryForm($tag, $out, &$form)
+    {
+        $this->log(LOG_INFO, "onStartMakeEntryForm() called for tag '$tag'");
+
+        if ($tag == $this->tag()) {
+            $form = $this->entryForm($out);
+            return false;
+        }
+
+        return true;
+    }
 }