forked from GNUsocial/gnu-social
		
	Show blocked users from group in section
This commit is contained in:
		| @@ -209,6 +209,16 @@ class User_group extends Managed_DataObject | ||||
|         return $member_count; | ||||
|     } | ||||
|  | ||||
|     function getBlockedCount() | ||||
|     { | ||||
|         // XXX: WORM cache this | ||||
|  | ||||
|         $block = new Group_block(); | ||||
|         $block->group_id = $this->id; | ||||
|  | ||||
|         return $block->count(); | ||||
|     } | ||||
|  | ||||
|     function getAdmins($offset=0, $limit=null) | ||||
|     { | ||||
|         $qry = | ||||
|   | ||||
| @@ -126,6 +126,10 @@ class GroupAction extends Action | ||||
|     function showSections() | ||||
|     { | ||||
|         $this->showMembers(); | ||||
|         $cur = common_current_user(); | ||||
|         if ($cur && $cur->isAdmin($this->group)) { | ||||
|             $this->showBlocked(); | ||||
|         } | ||||
|         $this->showAdmins(); | ||||
|         $cloud = new GroupTagCloudSection($this, $this->group); | ||||
|         $cloud->show(); | ||||
| @@ -184,6 +188,53 @@ class GroupAction extends Action | ||||
|         $this->elementEnd('div'); | ||||
|     } | ||||
|  | ||||
|     function showBlocked() | ||||
|     { | ||||
|         $member = $this->group->getBlocked(0, MEMBERS_PER_SECTION); | ||||
|  | ||||
|         if (!$member) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         $this->elementStart('div', array('id' => 'entity_blocked', | ||||
|                                          'class' => 'section')); | ||||
|  | ||||
|         if (Event::handle('StartShowGroupBlockedMiniList', array($this))) { | ||||
|               | ||||
|             $this->elementStart('h2'); | ||||
|  | ||||
|             $this->element('a', array('href' => common_local_url('blockedfromgroup', array('nickname' => | ||||
|                                                                                            $this->group->nickname))), | ||||
|                            _('Blocked')); | ||||
|  | ||||
|             $this->text(' '); | ||||
|  | ||||
|             $this->text($this->group->getBlockedCount()); | ||||
|              | ||||
|             $this->elementEnd('h2'); | ||||
|  | ||||
|             $gmml = new GroupBlockedMiniList($member, $this); | ||||
|             $cnt = $gmml->show(); | ||||
|             if ($cnt == 0) { | ||||
|                 // TRANS: Description for mini list of group members on a group page when the group has no members. | ||||
|                 $this->element('p', null, _('(None)')); | ||||
|             } | ||||
|  | ||||
|             // @todo FIXME: Should be shown if a group has more than 27 members, but I do not see it displayed at | ||||
|             //              for example http://identi.ca/group/statusnet. Broken? | ||||
|             if ($cnt > MEMBERS_PER_SECTION) { | ||||
|                 $this->element('a', array('href' => common_local_url('blockedfromgroup', | ||||
|                                                                      array('nickname' => $this->group->nickname))), | ||||
|                                // TRANS: Link to all group members from mini list of group members if group has more than n members. | ||||
|                                _('All members')); | ||||
|             } | ||||
|  | ||||
|             Event::handle('EndShowGroupBlockedMiniList', array($this)); | ||||
|         } | ||||
|  | ||||
|         $this->elementEnd('div'); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Show list of admins | ||||
|      * | ||||
| @@ -263,6 +314,28 @@ class GroupMembersMiniListItem extends ProfileMiniListItem | ||||
|     } | ||||
| } | ||||
|  | ||||
| class GroupBlockedMiniList extends ProfileMiniList | ||||
| { | ||||
|     function newListItem($profile) | ||||
|     { | ||||
|         return new GroupBlockedMiniListItem($profile, $this->action); | ||||
|     } | ||||
| } | ||||
|  | ||||
| class GroupBlockedMiniListItem extends ProfileMiniListItem | ||||
| { | ||||
|     function linkAttributes() | ||||
|     { | ||||
|         $aAttrs = parent::linkAttributes(); | ||||
|  | ||||
|         if (common_config('nofollow', 'members')) { | ||||
|             $aAttrs['rel'] .= ' nofollow'; | ||||
|         } | ||||
|  | ||||
|         return $aAttrs; | ||||
|     } | ||||
| } | ||||
|  | ||||
| class ThreadingGroupNoticeStream extends ThreadingNoticeStream | ||||
| { | ||||
|     function __construct($group, $profile) | ||||
|   | ||||
| @@ -92,15 +92,6 @@ class GroupNav extends Menu | ||||
|                                          $action_name == 'groupqueue', | ||||
|                                          'nav_group_pending'); | ||||
|                 } | ||||
|                 $this->out->menuItem(common_local_url('blockedfromgroup', array('nickname' => | ||||
|                                                                                 $nickname)), | ||||
|                                      // TRANS: Menu item in the group navigation page. Only shown for group administrators. | ||||
|                                      _m('MENU','Blocked'), | ||||
|                                      // TRANS: Tooltip for menu item in the group navigation page. Only shown for group administrators. | ||||
|                                      // TRANS: %s is the nickname of the group. | ||||
|                                      sprintf(_m('TOOLTIP','%s blocked users'), $nickname), | ||||
|                                      $action_name == 'blockedfromgroup', | ||||
|                                      'nav_group_blocked'); | ||||
|                 $this->out->menuItem(common_local_url('grouplogo', array('nickname' => | ||||
|                                                                          $nickname)), | ||||
|                                      // TRANS: Menu item in the group navigation page. Only shown for group administrators. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user