]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Linkify notice source when posting from registered OAuth apps
authorZach Copley <zach@status.net>
Tue, 2 Feb 2010 08:47:14 +0000 (08:47 +0000)
committerZach Copley <zach@status.net>
Tue, 2 Feb 2010 08:51:01 +0000 (08:51 +0000)
lib/api.php
lib/noticelist.php

index 10a2fae28c765e4750910a0f2b87f8b4d9d3e47b..f8197521672264a8ed8d7ae5e06aa7e89bc1071b 100644 (file)
@@ -1249,10 +1249,27 @@ class ApiAction extends Action
         case 'api':
             break;
         default:
+
+            $name = null;
+            $url  = null;
+
             $ns = Notice_source::staticGet($source);
+
             if ($ns) {
-                $source_name = '<a href="' . $ns->url . '">' . $ns->name . '</a>';
+                $name = $ns->name;
+                $url  = $ns->url;
+            } else {
+                $app = Oauth_application::staticGet('name', $source);
+                if ($app) {
+                    $name = $app->name;
+                    $url  = $app->source_url;
+                }
+            }
+
+            if (!empty($name) && !empty($url)) {
+                $source_name = '<a href="' . $url . '">' . $name . '</a>';
             }
+
             break;
         }
         return $source_name;
index 85c169716a2753dcbaffe2e914969e3c32019cac..a4a0f2651a190084f67e811fc540f914cecc0050 100644 (file)
@@ -486,12 +486,28 @@ class NoticeListItem extends Widget
                 $this->out->element('span', 'device', $source_name);
                 break;
              default:
+
+                $name = null;
+                $url  = null;
+
                 $ns = Notice_source::staticGet($this->notice->source);
+
                 if ($ns) {
+                    $name = $ns->name;
+                    $url  = $ns->url;
+                } else {
+                    $app = Oauth_application::staticGet('name', $this->notice->source);
+                    if ($app) {
+                        $name = $app->name;
+                        $url  = $app->source_url;
+                    }
+                }
+
+                if (!empty($name) && !empty($url)) {
                     $this->out->elementStart('span', 'device');
-                    $this->out->element('a', array('href' => $ns->url,
+                    $this->out->element('a', array('href' => $url,
                                                    'rel' => 'external'),
-                                        $ns->name);
+                                        $name);
                     $this->out->elementEnd('span');
                 } else {
                     $this->out->element('span', 'device', $source_name);