summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
authorZach Copley <zach@status.net>2010-02-16 16:22:58 -0800
committerZach Copley <zach@status.net>2010-02-16 16:22:58 -0800
commitc892726c80b4e466b2bbad0f7b396cf0c7a137d9 (patch)
tree015b28c37e1241f1601171b78fb65ea71f40d319 /classes
parent014a32e6b873291bcd289a1ed25759a7a29221d7 (diff)
Take remote profiles into account when looking up canonical profile URIs
Diffstat (limited to 'classes')
-rw-r--r--classes/Notice.php2
-rw-r--r--classes/Profile.php21
2 files changed, 16 insertions, 7 deletions
diff --git a/classes/Notice.php b/classes/Notice.php
index 73b22d58a..f184b9c52 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -1036,7 +1036,7 @@ class Notice extends Memcached_DataObject
$xs->element(
'link', array(
'rel' => 'ostatus:attention',
- 'href' => $profile->getAcctUri()
+ 'href' => $profile->getUri()
)
);
}
diff --git a/classes/Profile.php b/classes/Profile.php
index 8f578c95a..5a86619fd 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -810,10 +810,7 @@ class Profile extends Memcached_DataObject
$xs->element(
'id',
null,
- common_local_url(
- 'userbyid',
- array('id' => $this->id)
- )
+ $this->getUri()
);
$xs->element('title', null, $this->getBestName());
@@ -835,9 +832,21 @@ class Profile extends Memcached_DataObject
return $xs->getString();
}
- function getAcctUri()
+ function getUri()
{
- return $this->nickname . '@' . common_config('site', 'server');
+ if (Event::handle('GetProfileUri', array($this))) {
+
+ $remote = Remote_profile::staticGet('id', $this->id);
+
+ if (!empty($remote)) {
+ return $remote->uri;
+ } else {
+ return common_local_url(
+ 'userbyid',
+ array('id' => $this->id)
+ );
+ }
+ }
}
}