]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/Notice.php
Add xmlns:statusnet and statusnet:notice_info element to Atom entries for notices
[quix0rs-gnu-social.git] / classes / Notice.php
index 0b1b2e402dfc05178651f6134f830ab7763af75b..9a9172cbab519f3beb7acd46f4ea1bbe3332e658 100644 (file)
@@ -1171,7 +1171,7 @@ class Notice extends Memcached_DataObject
         return $groups;
     }
 
-    function asAtomEntry($namespace=false, $source=false, $author=true)
+    function asAtomEntry($namespace=false, $source=false, $author=true, $cur=null)
     {
         $profile = $this->getProfile();
 
@@ -1184,7 +1184,8 @@ class Notice extends Memcached_DataObject
                            'xmlns:activity' => 'http://activitystrea.ms/spec/1.0/',
                            'xmlns:media' => 'http://purl.org/syndication/atommedia',
                            'xmlns:poco' => 'http://portablecontacts.net/spec/1.0',
-                           'xmlns:ostatus' => 'http://ostatus.org/schema/1.0');
+                           'xmlns:ostatus' => 'http://ostatus.org/schema/1.0',
+                           'xmlns:statusnet' => 'http://status.net/ont/');
         } else {
             $attrs = array();
         }
@@ -1210,6 +1211,18 @@ class Notice extends Memcached_DataObject
 
             $xs->element('icon', null, $profile->avatarUrl(AVATAR_PROFILE_SIZE));
             $xs->element('updated', null, common_date_w3dtf($this->created));
+
+            $noticeInfoAttr = array(
+                'local_id'   => $this->id,    // local notice ID (useful to clients for ordering)
+                'source'     => $this->source // the client name (source attribution)
+                // @todo source source_link
+                );
+
+            if (!empty($cur)) {
+                $noticeInfoAttr['favorited'] = ($cur->hasFave($this)) ? 'true' : 'false';
+            }
+
+            $xs->element('statusnet:notice_info', $noticeInfoAttr, null);
         }
 
         if ($source) {