]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Upgrade profile-based activity noun to have more complete set of
authorZach Copley <zach@status.net>
Mon, 22 Feb 2010 09:21:34 +0000 (01:21 -0800)
committerZach Copley <zach@status.net>
Mon, 22 Feb 2010 09:21:34 +0000 (01:21 -0800)
profile fields

classes/Profile.php
lib/atom10feed.php
lib/atomusernoticefeed.php

index 6b396c8c340b64115b7c4377b3d148c1921eba23..4f67fc0bcc1814a1b7739f5cb6b1287259ada049 100644 (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)
@@ -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();
     }
 
index 5e17b20d3ab8816507ea4ebe96fb99786a97e6f3..8842840d568ef862d387ecac72b9c8cfcbf2553b 100644 (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);
         }
 
index f71c721feccf649283928859565676582b75e4ad..2ad8de4550d1a3c3aac8b694f974a4ebf9e19c2d 100644 (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);
         }
     }