utility function for getting a profile URI

I added a utility function for getting a profile URI. At some point we
need to push commonalities between Remote_profile and User into the
Profile class; single-table inheritance. We do a lot of switching
around for no good reason on users and profiles.

darcs-hash:20080716152511-84dde-6f73d947d11083e7235756fde635e145f02e2483.gz
This commit is contained in:
Evan Prodromou 2008-07-16 11:25:11 -04:00
parent 9b0ae9dd82
commit eb9715992c
2 changed files with 19 additions and 8 deletions

View File

@ -117,12 +117,7 @@ class Rss10Action extends Action {
function show_item($notice) { function show_item($notice) {
$profile = Profile::staticGet($notice->profile_id); $profile = Profile::staticGet($notice->profile_id);
$nurl = common_local_url('shownotice', array('notice' => $notice->id)); $nurl = common_local_url('shownotice', array('notice' => $notice->id));
$user = User::staticGet($profile->id); $creator_uri = common_profile_uri($profile);
if ($user) {
$creator_url = $user->uri;
} else {
$creator_url = $profile->profile_url;
}
common_element_start('item', array('rdf:about' => $notice->uri)); common_element_start('item', array('rdf:about' => $notice->uri));
$title = $profile->nickname . ': ' . $notice->content; $title = $profile->nickname . ': ' . $notice->content;
common_element('title', NULL, $title); 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('sioc:has_creator', array('rdf:resource' => $creator_url));
common_element('cc:licence', array('rdf:resource' => common_config('license', 'url'))); common_element('cc:licence', array('rdf:resource' => common_config('license', 'url')));
common_element_end('item'); common_element_end('item');
$this->creators[$creator_url] = $profile; $this->creators[$creator_uri] = $profile;
} }
function show_creators() { function show_creators() {

View File

@ -1292,4 +1292,20 @@ function common_profile_avatar_url($profile, $size=AVATAR_PROFILE_SIZE) {
return common_default_avatar($size); return common_default_avatar($size);
} }
} }
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;
}