$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');
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'));
$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');
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;
+ }
+}
+