]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/foafgroup.php
Using GNUSOCIAL_VERSION instead of STATUSNET_VERSION
[quix0rs-gnu-social.git] / actions / foafgroup.php
index f5fd7fe885e993adb4e2fa1fe64b468a3d6bdb81..34332c7e2978ee88f805606d640587355ddc1f66 100644 (file)
@@ -27,6 +27,7 @@
 
 if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
+// @todo XXX: Documentation missing.
 class FoafGroupAction extends Action
 {
     function isReadOnly($args)
@@ -41,6 +42,7 @@ class FoafGroupAction extends Action
         $nickname_arg = $this->arg('nickname');
 
         if (empty($nickname_arg)) {
+            // TRANS: Client error displayed when requesting Friends of a Friend feed without providing a group nickname.
             $this->clientError(_('No such group.'), 404);
             return false;
         }
@@ -56,9 +58,18 @@ class FoafGroupAction extends Action
             return false;
         }
 
-        $this->group = User_group::staticGet('nickname', $this->nickname);
+        $local = Local_group::getKV('nickname', $this->nickname);
+
+        if (!$local) {
+            // TRANS: Client error displayed when requesting Friends of a Friend feed for a non-local group.
+            $this->clientError(_('No such group.'), 404);
+            return false;
+        }
+
+        $this->group = User_group::getKV('id', $local->group_id);
 
         if (!$this->group) {
+            // TRANS: Client error displayed when requesting Friends of a Friend feed for a nickname that is not a group.
             $this->clientError(_('No such group.'), 404);
             return false;
         }
@@ -113,17 +124,18 @@ class FoafGroupAction extends Action
         if ($this->group->homepage_logo) {
             $this->element('depiction', array('rdf:resource' => $this->group->homepage_logo));
         }
-        
+
         $members = $this->group->getMembers();
         $member_details = array();
         while ($members->fetch()) {
             $member_uri = common_local_url('userbyid', array('id'=>$members->id));
             $member_details[$member_uri] = array(
-                                        'nickname' => $members->nickname
+                                        'nickname' => $members->nickname,
+                                        'is_admin' => false,
                                         );
             $this->element('member', array('rdf:resource' => $member_uri));
         }
-        
+
         $admins = $this->group->getAdmins();
         while ($admins->fetch()) {
             $admin_uri = common_local_url('userbyid', array('id'=>$admins->id));
@@ -132,14 +144,14 @@ class FoafGroupAction extends Action
         }
 
         $this->elementEnd('Group');
-        
+
         ksort($member_details);
         foreach ($member_details as $uri => $details) {
             if ($details['is_admin'])
             {
                 $this->elementStart('Agent', array('rdf:about' => $uri));
                 $this->element('nick', null, $details['nickname']);
-                $this->elementStart('holdsAccount');
+                $this->elementStart('account');
                 $this->elementStart('sioc:User', array('rdf:about'=>$uri.'#acct'));
                 $this->elementStart('sioc:has_function');
                 $this->elementStart('statusnet:GroupAdminRole');
@@ -147,7 +159,7 @@ class FoafGroupAction extends Action
                 $this->elementEnd('statusnet:GroupAdminRole');
                 $this->elementEnd('sioc:has_function');
                 $this->elementEnd('sioc:User');
-                $this->elementEnd('holdsAccount');
+                $this->elementEnd('account');
                 $this->elementEnd('Agent');
             }
             else
@@ -158,7 +170,7 @@ class FoafGroupAction extends Action
                                         ));
             }
         }
-        
+
         $this->elementEnd('rdf:RDF');
         $this->endXML();
     }
@@ -170,4 +182,4 @@ class FoafGroupAction extends Action
         $this->elementEnd('Document');
     }
 
-}
\ No newline at end of file
+}