]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Share/SharePlugin.php
Merge branch 'tagprofile-ajax-fix' into 'nightly'
[quix0rs-gnu-social.git] / plugins / Share / SharePlugin.php
index 671214b1d65e742a9254a1b0bd51f795f5b0a1e8..c337efbaeca10660b02376212f006df46cee722e 100644 (file)
@@ -161,7 +161,7 @@ class SharePlugin extends ActivityVerbHandlerPlugin
     public function extendActivity(Notice $stored, Activity $act, Profile $scoped=null)
     {
         // TODO: How to handle repeats of deleted notices?
-        $target = Notice::getById($stored->repeat_of);
+        $target = Notice::getByID($stored->repeat_of);
         // TRANS: A repeat activity's title. %1$s is repeater's nickname
         //        and %2$s is the repeated user's nickname.
         $act->title = sprintf(_('%1$s repeated a notice by %2$s'),
@@ -190,6 +190,31 @@ class SharePlugin extends ActivityVerbHandlerPlugin
 
     // Layout stuff
 
+    /**
+     * show a link to the author of repeat
+     *
+     * FIXME: Some repeat stuff still in lib/noticelistitem.php! ($nli->repeat etc.)
+     */
+    public function onEndShowNoticeInfo(NoticeListItem $nli)
+    {
+        if (!empty($nli->repeat)) {
+            $repeater = $nli->repeat->getProfile();
+
+            $attrs = array('href' => $repeater->getUrl(),
+                           'class' => 'h-card p-author',
+                           'title' => $repeater->getFancyName());
+
+            $nli->out->elementStart('span', 'repeat h-entry');
+
+            // TRANS: Addition in notice list item if notice was repeated. Followed by a span with a nickname.
+            $nli->out->raw(_('Repeated by').' ');
+
+            $nli->out->element('a', $attrs, $repeater->getNickname());
+
+            $nli->out->elementEnd('span');
+        }
+    }
+
     public function onEndShowThreadedNoticeTailItems(NoticeListItem $nli, Notice $notice, &$threadActive)
     {
         if ($nli instanceof ThreadedNoticeListSubItem) {
@@ -244,6 +269,34 @@ class SharePlugin extends ActivityVerbHandlerPlugin
         // pass
     }
 
+    // API stuff
+
+    /**
+     * Typically just used to fill out Twitter-compatible API status data.
+     *
+     * FIXME: Make all the calls before this end up with a Notice instead of ArrayWrapper please...
+     */
+    public function onNoticeSimpleStatusArray($notice, array &$status, Profile $scoped=null, array $args=array())
+    {
+        $status['repeated'] = $scoped instanceof Profile
+                            ? $scoped->hasRepeated($notice)
+                            : false;
+
+        if ($status['repeated'] === true) {
+            // Qvitter API wants the "repeated_id" value set too.
+            $repeated = Notice::pkeyGet(array('profile_id' => $scoped->getID(),
+                                              'repeat_of' => $notice->getID()));
+            $status['repeated_id'] = $repeated->getID();
+        }
+    }
+
+    public function onTwitterUserArray(Profile $profile, array &$userdata, Profile $scoped=null, array $args=array())
+    {
+        $userdata['favourites_count'] = Fave::countByProfile($profile);
+    }
+
+    // Command stuff
+
     /**
      * EndInterpretCommand for RepeatPlugin will handle the 'repeat' command
      * using the class RepeatCommand.