summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Profile.php45
-rw-r--r--lib/atom10feed.php4
-rw-r--r--lib/atomusernoticefeed.php3
-rw-r--r--plugins/OStatus/actions/ostatusinit.php4
4 files changed, 48 insertions, 8 deletions
diff --git a/classes/Profile.php b/classes/Profile.php
index 5ff746e30..1ba3281ff 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -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)
@@ -811,9 +813,46 @@ class Profile extends Memcached_DataObject
'id',
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();
}
diff --git a/lib/atom10feed.php b/lib/atom10feed.php
index 5e17b20d3..8842840d5 100644
--- a/lib/atom10feed.php
+++ b/lib/atom10feed.php
@@ -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);
}
diff --git a/lib/atomusernoticefeed.php b/lib/atomusernoticefeed.php
index f71c721fe..2ad8de455 100644
--- a/lib/atomusernoticefeed.php
+++ b/lib/atomusernoticefeed.php
@@ -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);
}
}
diff --git a/plugins/OStatus/actions/ostatusinit.php b/plugins/OStatus/actions/ostatusinit.php
index 4afde2c36..abd8cb541 100644
--- a/plugins/OStatus/actions/ostatusinit.php
+++ b/plugins/OStatus/actions/ostatusinit.php
@@ -119,7 +119,7 @@ class OStatusInitAction extends Action
} else {
$this->connectProfile($this->acct);
}
- } elseif (strpos('@', $this->acct) !== false) {
+ } elseif (strpos($this->acct, '@') !== false) {
$this->connectWebfinger($this->acct);
}
}
@@ -139,7 +139,7 @@ class OStatusInitAction extends Action
$user = User::staticGet('nickname', $this->nickname);
$target_profile = common_local_url('userbyid', array('id' => $user->id));
- $url = $w->applyTemplate($link['template'], $feed_url);
+ $url = $w->applyTemplate($link['template'], $target_profile);
common_redirect($url, 303);
}