]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Poll/PollPlugin.php
Merge branch 'nightly' of gitorious.org:social/mainline into nightly
[quix0rs-gnu-social.git] / plugins / Poll / PollPlugin.php
index 5b3ed3dc452e05ad5303492f57e2bba740ea2326..64b254e41866793cbfded262c62d3c46644b083b 100644 (file)
@@ -77,7 +77,7 @@ class PollPlugin extends MicroAppPlugin
      *
      * @return boolean hook value
      */
-    function onEndShowStyles($action)
+    function onEndShowStyles(Action $action)
     {
         $action->cssLink($this->path('css/poll.css'));
         return true;
@@ -86,11 +86,11 @@ class PollPlugin extends MicroAppPlugin
     /**
      * Map URLs to actions
      *
-     * @param Net_URL_Mapper $m path-to-action mapper
+     * @param URLMapper $m path-to-action mapper
      *
      * @return boolean hook value; true means continue processing, false means stop.
      */
-    function onRouterInitialized($m)
+    public function onRouterInitialized(URLMapper $m)
     {
         $m->connect('main/poll/new',
                     array('action' => 'newpoll'));
@@ -137,11 +137,6 @@ class PollPlugin extends MicroAppPlugin
         return array(self::POLL_OBJECT, self::POLL_RESPONSE_OBJECT);
     }
 
-
-    function adaptNoticeListItem($nli) {
-        return new PollListItem($nli);
-    }
-
     /**
      * When a notice is deleted, delete the related Poll
      *
@@ -172,9 +167,9 @@ class PollPlugin extends MicroAppPlugin
     function saveNoticeFromActivity(Activity $activity, Profile $profile, array $options=array())
     {
         // @fixme
-        common_log(LOG_DEBUG, "XXX activity: " . var_export($activity, true));
-        common_log(LOG_DEBUG, "XXX profile: " . var_export($profile, true));
-        common_log(LOG_DEBUG, "XXX options: " . var_export($options, true));
+        common_debug("XXX activity: " . var_export($activity, true));
+        common_debug("XXX profile: " . var_export($profile, true));
+        common_debug("XXX options: " . var_export($options, true));
 
         // Ok for now, we can grab stuff from the XML entry directly.
         // This won't work when reading from JSON source
@@ -194,10 +189,10 @@ class PollPlugin extends MicroAppPlugin
                 }
                 try {
                     $notice = Poll::saveNew($profile, $question, $opts, $options);
-                    common_log(LOG_DEBUG, "Saved Poll from ActivityStream data ok: notice id " . $notice->id);
+                    common_debug("Saved Poll from ActivityStream data ok: notice id " . $notice->id);
                     return $notice;
                 } catch (Exception $e) {
-                    common_log(LOG_DEBUG, "Poll save from ActivityStream data failed: " . $e->getMessage());
+                    common_debug("Poll save from ActivityStream data failed: " . $e->getMessage());
                 }
             } else if ($responseElements->length) {
                 $data = $responseElements->item(0);
@@ -215,13 +210,13 @@ class PollPlugin extends MicroAppPlugin
                 }
                 try {
                     $notice = Poll_response::saveNew($profile, $poll, $selection, $options);
-                    common_log(LOG_DEBUG, "Saved Poll_response ok, notice id: " . $notice->id);
+                    common_debug("Saved Poll_response ok, notice id: " . $notice->id);
                     return $notice;
                 } catch (Exception $e) {
-                    common_log(LOG_DEBUG, "Poll response  save fail: " . $e->getMessage());
+                    common_debug("Poll response  save fail: " . $e->getMessage());
                 }
             } else {
-                common_log(LOG_DEBUG, "YYY no poll data");
+                common_debug("YYY no poll data");
             }
         }
     }
@@ -348,7 +343,7 @@ class PollPlugin extends MicroAppPlugin
      */
     public function activityObjectOutputJson(ActivityObject $obj, array &$out)
     {
-        common_log(LOG_DEBUG, 'QQQ: ' . var_export($obj, true));
+        common_debug('QQQ: ' . var_export($obj, true));
         if (isset($obj->pollQuestion)) {
             /**
              * "poll": {
@@ -445,4 +440,27 @@ class PollPlugin extends MicroAppPlugin
 
         return true;
     }
+
+    protected function showNoticeContent(Notice $stored, HTMLOutputter $out, Profile $scoped=null)
+    {
+        if ($stored->object_type == self::POLL_RESPONSE_OBJECT) {
+            parent::showNoticeContent($stored, $out, $scoped);
+            return;
+        }
+
+        // If the stored notice is a POLL_OBJECT
+        $poll = Poll::getByNotice($stored);
+        if ($poll instanceof Poll) {
+            if (!$scoped instanceof Profile || $poll->getResponse($scoped) instanceof Poll_response) {
+                // Either the user is not logged in or it has already responded; show the results.
+                $form = new PollResultForm($poll, $out);
+            } else {
+                $form = new PollResponseForm($poll, $out);
+            }
+            $form->show();
+        } else {
+            // TRANS: Error text displayed if no poll data could be found.
+            $out->text(_m('Poll data is missing'));
+        }
+    }
 }