Upgrade profile-based activity noun to have more complete set of

profile fields
This commit is contained in:
Zach Copley 2010-02-22 01:21:34 -08:00
parent ca2a88545d
commit 47300a2ae9
3 changed files with 46 additions and 6 deletions

View File

@ -792,9 +792,11 @@ class Profile extends Memcached_DataObject
* Returns an XML string fragment with profile information as an
* Activity Streams noun object with the given element type.
*
* Assumes that 'activity' namespace has been previously defined.
* Assumes that 'activity', 'georss', and 'poco' namespace has been
* previously defined.
*
* @param string $element one of 'actor', 'subject', 'object', 'target'
*
* @return string
*/
function asActivityNoun($element)
@ -812,8 +814,45 @@ class Profile extends Memcached_DataObject
null,
$this->getUri()
);
// title should contain fullname
$xs->element('title', null, $this->getBestName());
// Portable Contacts stuff
if (isset($this->bio)) {
// XXX: Possible to use OpenSocial's aboutMe?
$xs->element('poco:note', null, $this->bio);
}
if (isset($this->homepage)) {
$xs->elementStart('poco:urls');
$xs->element('poco:value', null, $this->homepage);
$xs->element('poco:type', null, 'homepage');
$xs->element('poco:primary', null, 'true');
$xs->elementEnd('poco:urls');
}
if (isset($this->location)) {
$xs->elementStart('poco:address');
$xs->element('poco:formatted', null, $this->location);
$xs->elementEnd('poco:address');
}
if (isset($this->lat) && isset($this->lon)) {
$this->element(
'georss:point',
null,
(float)$this->lat . ' ' . (float)$this->lon
);
}
// XXX: Should we send all avatar sizes we have? I think
// cliqset does -Z
$avatar = $this->getAvatar(AVATAR_PROFILE_SIZE);
$xs->element(
@ -829,6 +868,8 @@ class Profile extends Memcached_DataObject
$xs->elementEnd('activity:' . $element);
// XXX: Add people tags with <poco:tags> plural?
return $xs->getString();
}

View File

@ -109,11 +109,11 @@ class Atom10Feed extends XMLStringer
);
}
if (!is_null($uri)) {
if (isset($uri)) {
$xs->element('uri', null, $uri);
}
if (!is_null(email)) {
if (isset($email)) {
$xs->element('email', null, $email);
}

View File

@ -60,8 +60,7 @@ class AtomUserNoticeFeed extends AtomNoticeFeed
$this->user = $user;
if (!empty($user)) {
$profile = $user->getProfile();
$this->addAuthor($profile->getBestName(),
$user->uri);
$this->addAuthor($profile->nickname, $user->uri);
}
}