diff --git a/lib/rssaction.php b/lib/rssaction.php index ee37f3aa7f..5a6a8313d5 100644 --- a/lib/rssaction.php +++ b/lib/rssaction.php @@ -117,12 +117,7 @@ class Rss10Action extends Action { function show_item($notice) { $profile = Profile::staticGet($notice->profile_id); $nurl = common_local_url('shownotice', array('notice' => $notice->id)); - $user = User::staticGet($profile->id); - if ($user) { - $creator_url = $user->uri; - } else { - $creator_url = $profile->profile_url; - } + $creator_uri = common_profile_uri($profile); common_element_start('item', array('rdf:about' => $notice->uri)); $title = $profile->nickname . ': ' . $notice->content; common_element('title', NULL, $title); @@ -133,7 +128,7 @@ class Rss10Action extends Action { common_element('sioc:has_creator', array('rdf:resource' => $creator_url)); common_element('cc:licence', array('rdf:resource' => common_config('license', 'url'))); common_element_end('item'); - $this->creators[$creator_url] = $profile; + $this->creators[$creator_uri] = $profile; } function show_creators() { diff --git a/lib/util.php b/lib/util.php index 1b672561fc..997f32430b 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1292,4 +1292,20 @@ function common_profile_avatar_url($profile, $size=AVATAR_PROFILE_SIZE) { return common_default_avatar($size); } } - \ No newline at end of file + +function common_profile_uri($profile) { + if (!$profile) { + return NULL; + } + $user = User::staticGet($profile->id); + if ($user) { + return $user->uri; + } + + $remote = Remote_profile::staticGet($profile->id); + if ($remote) { + return $remote->uri; + } + # XXX: this is a very bad profile! + return NULL; +} \ No newline at end of file