summaryrefslogtreecommitdiff
path: root/actions/showgroup.php
diff options
context:
space:
mode:
Diffstat (limited to 'actions/showgroup.php')
-rw-r--r--actions/showgroup.php61
1 files changed, 41 insertions, 20 deletions
diff --git a/actions/showgroup.php b/actions/showgroup.php
index 5704b13d1..17c37e4d7 100644
--- a/actions/showgroup.php
+++ b/actions/showgroup.php
@@ -221,7 +221,8 @@ class ShowgroupAction extends GroupDesignAction
function showGroupProfile()
{
- $this->elementStart('div', 'entity_profile vcard author');
+ $this->elementStart('div', array('id' => 'i',
+ 'class' => 'entity_profile vcard author'));
$this->element('h2', null, _('Group profile'));
@@ -387,18 +388,23 @@ class ShowgroupAction extends GroupDesignAction
$this->elementStart('div', array('id' => 'entity_members',
'class' => 'section'));
- $this->element('h2', null, _('Members'));
+ if (Event::handle('StartShowGroupMembersMiniList', array($this))) {
- $pml = new ProfileMiniList($member, $this);
- $cnt = $pml->show();
- if ($cnt == 0) {
- $this->element('p', null, _('(None)'));
- }
+ $this->element('h2', null, _('Members'));
+
+ $gmml = new GroupMembersMiniList($member, $this);
+ $cnt = $gmml->show();
+ if ($cnt == 0) {
+ $this->element('p', null, _('(None)'));
+ }
- if ($cnt > MEMBERS_PER_SECTION) {
- $this->element('a', array('href' => common_local_url('groupmembers',
- array('nickname' => $this->group->nickname))),
- _('All members'));
+ if ($cnt > MEMBERS_PER_SECTION) {
+ $this->element('a', array('href' => common_local_url('groupmembers',
+ array('nickname' => $this->group->nickname))),
+ _('All members'));
+ }
+
+ Event::handle('EndShowGroupMembersMiniList', array($this));
}
$this->elementEnd('div');
@@ -424,14 +430,6 @@ class ShowgroupAction extends GroupDesignAction
function showStatistics()
{
- // XXX: WORM cache this
- $members = $this->group->getMembers();
- $members_count = 0;
- /** $member->count() doesn't work. */
- while ($members->fetch()) {
- $members_count++;
- }
-
$this->elementStart('div', array('id' => 'entity_statistics',
'class' => 'section'));
@@ -445,7 +443,7 @@ class ShowgroupAction extends GroupDesignAction
$this->elementStart('dl', 'entity_members');
$this->element('dt', null, _('Members'));
- $this->element('dd', null, (is_int($members_count)) ? $members_count : '0');
+ $this->element('dd', null, $this->group->getMemberCount());
$this->elementEnd('dl');
$this->elementEnd('div');
@@ -501,3 +499,26 @@ class GroupAdminSection extends ProfileSection
return null;
}
}
+
+class GroupMembersMiniList extends ProfileMiniList
+{
+ function newListItem($profile)
+ {
+ return new GroupMembersMiniListItem($profile, $this->action);
+ }
+}
+
+class GroupMembersMiniListItem extends ProfileMiniListItem
+{
+ function linkAttributes()
+ {
+ $aAttrs = parent::linkAttributes();
+
+ if (common_config('nofollow', 'members')) {
+ $aAttrs['rel'] .= ' nofollow';
+ }
+
+ return $aAttrs;
+ }
+}
+