summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrion Vibber <brion@pobox.com>2010-02-17 02:16:03 +0000
committerBrion Vibber <brion@pobox.com>2010-02-17 02:16:03 +0000
commite51e96d7248b281e7d0e59f5a9bdcd4e7e651e82 (patch)
treedaebfb964a48a75320f7342e4dfa5e216dc46960
parent19b03ef797190076b726ae25842bc3ed502ebef6 (diff)
OStatus: override source link with the source domain and link to original message
-rw-r--r--lib/noticelist.php30
-rw-r--r--plugins/OStatus/OStatusPlugin.php13
2 files changed, 30 insertions, 13 deletions
diff --git a/lib/noticelist.php b/lib/noticelist.php
index c05b99024..837cb90fa 100644
--- a/lib/noticelist.php
+++ b/lib/noticelist.php
@@ -492,30 +492,34 @@ class NoticeListItem extends Widget
break;
default:
- $name = null;
+ $name = $source_name;
$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 (Event::handle('StartNoticeSourceLink', array($this->notice, &$name, &$url, &$title))) {
+ $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;
+ }
}
}
+ Event::handle('EndNoticeSourceLink', array($this->notice, &$name, &$url, &$title));
if (!empty($name) && !empty($url)) {
$this->out->elementStart('span', 'device');
$this->out->element('a', array('href' => $url,
- 'rel' => 'external'),
+ 'rel' => 'external',
+ 'title' => $title),
$name);
$this->out->elementEnd('span');
} else {
- $this->out->element('span', 'device', $source_name);
+ $this->out->element('span', 'device', $name);
}
break;
}
diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php
index 3b1329d6c..b6c9fa1d4 100644
--- a/plugins/OStatus/OStatusPlugin.php
+++ b/plugins/OStatus/OStatusPlugin.php
@@ -289,4 +289,17 @@ class OStatusPlugin extends Plugin
$action->script(common_path('plugins/OStatus/js/ostatus.js'));
return true;
}
+
+ function onStartNoticeSourceLink($notice, &$name, &$url, &$title)
+ {
+ if ($notice->source == 'ostatus') {
+ $bits = parse_url($notice->uri);
+ $domain = $bits['host'];
+
+ $name = $domain;
+ $url = $notice->uri;
+ $title = sprintf(_m("Sent from %s via OStatus"), $domain);
+ return false;
+ }
+ }
}