]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/foafgroup.php
.inc.php please ...
[quix0rs-gnu-social.git] / actions / foafgroup.php
index f5fd7fe885e993adb4e2fa1fe64b468a3d6bdb81..a9cf5d9dc0964e7fe01049c82030a3829ef85609 100644 (file)
 
 if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
 
+// @todo XXX: Documentation missing.
 class FoafGroupAction extends Action
 {
-    function isReadOnly($args)
+    function isReadOnly(array $args=array())
     {
         return true;
     }
 
-    function prepare($args)
+    function prepare(array $args=array())
     {
         parent::prepare($args);
 
         $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;
         }
 
         $this->nickname = common_canonical_nickname($nickname_arg);
@@ -56,11 +57,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);
+        }
+
+        $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;
         }
 
         common_set_returnto($this->selfUrl());
@@ -68,7 +76,7 @@ class FoafGroupAction extends Action
         return true;
     }
 
-    function handle($args)
+    function handle(array $args=array())
     {
         parent::handle($args);
 
@@ -113,17 +121,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 +141,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 +156,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 +167,7 @@ class FoafGroupAction extends Action
                                         ));
             }
         }
-        
+
         $this->elementEnd('rdf:RDF');
         $this->endXML();
     }
@@ -170,4 +179,4 @@ class FoafGroupAction extends Action
         $this->elementEnd('Document');
     }
 
-}
\ No newline at end of file
+}