if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+// @todo XXX: Documentation missing.
class FoafGroupAction extends Action
{
function isReadOnly($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);
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());
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));
}
$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');
$this->elementEnd('statusnet:GroupAdminRole');
$this->elementEnd('sioc:has_function');
$this->elementEnd('sioc:User');
- $this->elementEnd('holdsAccount');
+ $this->elementEnd('account');
$this->elementEnd('Agent');
}
else
));
}
}
-
+
$this->elementEnd('rdf:RDF');
$this->endXML();
}
$this->elementEnd('Document');
}
-}
\ No newline at end of file
+}