Skip to:
Content

BuddyPress.org

Changeset 540


Ignore:
Timestamp:
11/13/2008 11:20:15 PM (18 years ago)
Author:
apeatling
Message:

Added ability for group admins to:

  • Promote users to moderators
  • Demote users to regular group members
  • Ban and kick users from a group
Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core.php

    r538 r540  
    132132           'is_item_admin' would be 1 if they are a group admin, 0 if they are not. */
    133133        $bp['is_item_admin'] = bp_is_home();
     134       
     135        /* Used to determine if the logged in user is a moderator for the current content. */
     136        $bp['is_item_mod'] = false;
    134137
    135138        $bp['core'] = array(
  • trunk/bp-core/bp-core-templatetags.php

    r516 r540  
    3030        foreach( (array) $bp['bp_nav'] as $nav_item ) {
    3131                /* If the current component matches the nav item id, then add a highlight CSS class. */
    32                 if ( $bp['current_component'] == $nav_item['css_id'] && bp_is_home() ) {
     32                if ( $bp['current_component'] == $nav_item['css_id'] ) {
    3333                        $selected = ' class="current"';
    3434                } else {
     
    3737               
    3838                /* If we are viewing another person (current_userid does not equal loggedin_userid)
    39                    then check to see if the two users are friends. if they are, add a highligh CSS class
     39                   then check to see if the two users are friends. if they are, add a highlight CSS class
    4040                   to the friends nav item if it exists. */
    41                 if ( !bp_is_home() ) {
    42                         if ( function_exists('friends_check_friendship') ) {
     41                if ( !bp_is_home() && $bp['current_userid'] ) {
     42                        if ( function_exists('friends_install') ) {
    4343                                if ( friends_check_friendship( $bp['loggedin_userid'], $bp['current_userid'] ) && $nav_item['css_id'] == $bp['friends']['slug'] ) {
    4444                                        $selected = ' class="current"';
    45                                 } else {
     45                                } else { 
    4646                                        $selected = '';
    4747                                }
  • trunk/bp-groups.php

    r527 r540  
    33
    44define ( 'BP_GROUPS_IS_INSTALLED', 1 );
    5 define ( 'BP_GROUPS_VERSION', '0.2.3' );
     5define ( 'BP_GROUPS_VERSION', '0.2.5' );
    66
    77include_once( 'bp-groups/bp-groups-classes.php' );
     
    1212include_once( 'bp-groups/bp-groups-notifications.php' );
    1313include_once( 'bp-groups/bp-groups-admin.php' );
    14 
    15 /*include_once( 'bp-messages/bp-groups-admin.php' );*/
    1614
    1715/**************************************************************************
     
    5452                        inviter_id int(11) NOT NULL,
    5553                        is_admin tinyint(1) NOT NULL DEFAULT '0',
     54                        is_mod tinyint(1) NOT NULL DEFAULT '0',
    5655                        user_title varchar(100) NOT NULL,
    5756                        date_modified datetime NOT NULL,
    5857                        comments longtext NOT NULL,
    5958                        is_confirmed tinyint(1) NOT NULL DEFAULT '0',
     59                        is_banned tinyint(1) NOT NULL DEFAULT '0',
    6060                        KEY group_id (group_id),
     61                        KEY is_admin (is_admin),
     62                        KEY is_mod (is_mod),
    6163                        KEY user_id (user_id),
    6264                        KEY inviter_id (inviter_id),
     
    177179                        $bp['is_item_admin'] = groups_is_user_admin( $bp['loggedin_userid'], $group_obj->id );
    178180               
     181                /* If the user is not an admin, check if they are a moderator */
     182                if ( !$bp['is_item_admin'] )
     183                        $bp['is_item_mod'] = groups_is_user_mod( $bp['loggedin_userid'], $group_obj->id );
     184               
    179185                /* Is the logged in user a member of the group? */
    180186                $is_member = ( groups_is_user_member( $bp['loggedin_userid'], $group_obj->id ) ) ? true : false;
     
    228234                        bp_core_add_subnav_item( $bp['groups']['slug'], 'home', __('Home', 'buddypress'), $group_link, 'groups_screen_group_home', 'group-home' );
    229235                       
    230                         // If the user is a group administrator, then show the group admin nav item */
    231                         if ( $bp['is_item_admin'] )
    232                                 bp_core_add_subnav_item( $bp['groups']['slug'], 'admin', __('Admin', 'buddypress'), $group_link , 'groups_screen_group_admin', 'group-admin', $bp['is_item_admin'] );
     236                        // If the user is a group mod or more, then show the group admin nav item */
     237                        if ( $bp['is_item_mod'] || $bp['is_item_admin'] )
     238                                bp_core_add_subnav_item( $bp['groups']['slug'], 'admin', __('Admin', 'buddypress'), $group_link , 'groups_screen_group_admin', 'group-admin', ( $bp['is_item_admin'] + (int)$bp['is_item_mod'] ) );
    233239                       
    234240                        // If this is a closed group, and the user is not a member, show a "Request Membership" nav item.
     
    516522        if ( $bp['current_component'] == $bp['groups']['slug'] && $bp['action_variables'][0] == 'edit-details' ) {
    517523       
    518                 if ( !$bp['is_item_admin'] )
     524                if ( !$bp['is_item_mod'] )
    519525                        return false;
    520526               
     
    564570}
    565571add_action( 'wp', 'groups_screen_group_admin_settings', 4 );
     572
     573function groups_screen_group_admin_manage_members() {
     574        global $bp, $group_obj;
     575
     576        if ( $bp['current_component'] == $bp['groups']['slug'] && $bp['action_variables'][0] == 'manage-members' ) {
     577               
     578                if ( !$bp['is_item_admin'] )
     579                        return false;
     580               
     581                if ( $bp['action_variables'][1] == 'promote' && is_numeric( $bp['action_variables'][2] ) ) {
     582                        $user_id = $bp['action_variables'][2];
     583                       
     584                        // Promote a user.
     585                        if ( !groups_promote_member( $user_id, $group_obj->id ) ) {
     586                                bp_core_add_message( __( 'There was an error when promoting that user, please try again', 'buddypress' ), 'error' );
     587                        } else {
     588                                bp_core_add_message( __( 'User promoted successfully', 'buddypress' ) );
     589                        }
     590                       
     591                        do_action( 'bp_groups_promoted_member', $user_id, $group_obj->id );
     592                       
     593                        bp_core_redirect( site_url() . '/' . $bp['current_component'] . '/' . $bp['current_item'] . '/admin/manage-members' );
     594                }
     595               
     596                if ( $bp['action_variables'][1] == 'demote' && is_numeric( $bp['action_variables'][2] ) ) {
     597                        $user_id = $bp['action_variables'][2];
     598                       
     599                        // Demote a user.
     600                        if ( !groups_demote_member( $user_id, $group_obj->id ) ) {
     601                                bp_core_add_message( __( 'There was an error when demoting that user, please try again', 'buddypress' ), 'error' );
     602                        } else {
     603                                bp_core_add_message( __( 'User demoted successfully', 'buddypress' ) );
     604                        }
     605
     606                        do_action( 'bp_groups_demoted_member', $user_id, $group_obj->id );
     607                       
     608                        bp_core_redirect( site_url() . '/' . $bp['current_component'] . '/' . $bp['current_item'] . '/admin/manage-members' );
     609                }
     610               
     611                if ( $bp['action_variables'][1] == 'ban' && is_numeric( $bp['action_variables'][2] ) ) {
     612                        $user_id = $bp['action_variables'][2];
     613                       
     614                        // Ban a user.
     615                        if ( !groups_ban_member( $user_id, $group_obj->id ) ) {
     616                                bp_core_add_message( __( 'There was an error when banning that user, please try again', 'buddypress' ), 'error' );
     617                        } else {
     618                                bp_core_add_message( __( 'User banned successfully', 'buddypress' ) );
     619                        }
     620
     621                        do_action( 'bp_groups_banned_member', $user_id, $group_obj->id );
     622                       
     623                        bp_core_redirect( site_url() . '/' . $bp['current_component'] . '/' . $bp['current_item'] . '/admin/manage-members' );
     624                }
     625               
     626                if ( $bp['action_variables'][1] == 'unban' && is_numeric( $bp['action_variables'][2] ) ) {
     627                        $user_id = $bp['action_variables'][2];
     628                       
     629                        // Remove a ban for user.
     630                        if ( !groups_unban_member( $user_id, $group_obj->id ) ) {
     631                                bp_core_add_message( __( 'There was an error when unbanning that user, please try again', 'buddypress' ), 'error' );
     632                        } else {
     633                                bp_core_add_message( __( 'User ban removed successfully', 'buddypress' ) );
     634                        }
     635
     636                        do_action( 'bp_groups_unbanned_member', $user_id, $group_obj->id );
     637                       
     638                        bp_core_redirect( site_url() . '/' . $bp['current_component'] . '/' . $bp['current_item'] . '/admin/manage-members' );
     639                }
     640               
     641                bp_catch_uri( 'groups/admin/manage-members' );
     642        }
     643}
     644add_action( 'wp', 'groups_screen_group_admin_manage_members', 4 );
    566645
    567646
     
    685764               
    686765        // user wants to join a group
    687         if ( !groups_is_user_member( $bp['loggedin_userid'], $group_obj->id ) ) {
     766        if ( !groups_is_user_member( $bp['loggedin_userid'], $group_obj->id ) && !groups_is_user_banned( $bp['loggedin_userid'], $group_obj->id ) ) {
    688767                if ( !groups_join_group($group_obj->id) ) {
    689                         bp_core_add_message( __('There was an error joining the group. Please try again.', 'buddypress'), 'error' );
     768                        bp_core_add_message( __('There was an error joining the group.', 'buddypress'), 'error' );
    690769                } else {
    691770                        bp_core_add_message( __('You joined the group!', 'buddypress') );
     
    10831162}
    10841163
     1164function groups_get_slug( $group_id ) {
     1165        $group = new BP_Groups_Group( $group_id, false, false );
     1166        return $group->slug;
     1167}
     1168
    10851169function groups_is_user_admin( $user_id, $group_id ) {
    10861170        return BP_Groups_Member::check_is_admin( $user_id, $group_id );
    10871171}
    10881172
     1173function groups_is_user_mod( $user_id, $group_id ) {
     1174        return BP_Groups_Member::check_is_mod( $user_id, $group_id );
     1175}
     1176
    10891177function groups_is_user_member( $user_id, $group_id ) {
    10901178        return BP_Groups_Member::check_is_member( $user_id, $group_id );
     1179}
     1180
     1181function groups_is_user_banned( $user_id, $group_id ) {
     1182        return BP_Groups_Member::check_is_banned( $user_id, $group_id );
    10911183}
    10921184
     
    12141306}
    12151307
    1216 function groups_get_group_admin( $group_id ) {
    1217         return BP_Groups_Member::get_group_administrator_id( $group_id );
     1308function groups_get_group_admins( $group_id ) {
     1309        return BP_Groups_Member::get_group_administrator_ids( $group_id );
     1310}
     1311
     1312function groups_get_group_mods( $group_id ) {
     1313        return BP_Groups_Member::get_group_moderator_ids( $group_id );
     1314}
     1315
     1316function groups_get_group_users( $group_id, $limit = false, $page = false ) {
     1317        return BP_Groups_Member::get_all_for_group( $group_id, $limit, $page );
    12181318}
    12191319
    12201320function groups_is_group_admin( $user_id, $group_id ) {
    12211321        return BP_Groups_Member::check_is_admin( $user_id, $group_id );
     1322}
     1323
     1324function groups_is_group_mod( $user_id, $group_id ) {
     1325        return BP_Groups_Member::check_is_mod( $user_id, $group_id );
    12221326}
    12231327
     
    12841388       
    12851389        return true;
     1390}
     1391
     1392function groups_promote_member( $user_id, $group_id ) {
     1393        global $bp;
     1394       
     1395        if ( !$bp['is_item_admin'] )
     1396                return false;
     1397               
     1398        $member = new BP_Groups_Member( $user_id, $group_id );
     1399        return $member->promote();
     1400}
     1401
     1402function groups_demote_member( $user_id, $group_id ) {
     1403        global $bp;
     1404       
     1405        if ( !$bp['is_item_admin'] )
     1406                return false;
     1407               
     1408        $member = new BP_Groups_Member( $user_id, $group_id );
     1409        return $member->demote();
     1410}
     1411
     1412function groups_ban_member( $user_id, $group_id ) {
     1413        global $bp;
     1414       
     1415        if ( !$bp['is_item_admin'] )
     1416                return false;
     1417               
     1418        $member = new BP_Groups_Member( $user_id, $group_id );
     1419        return $member->ban();
     1420}
     1421
     1422function groups_unban_member( $user_id, $group_id ) {
     1423        global $bp;
     1424       
     1425        if ( !$bp['is_item_admin'] )
     1426                return false;
     1427               
     1428        $member = new BP_Groups_Member( $user_id, $group_id );
     1429        return $member->unban();
    12861430}
    12871431
     
    13001444       
    13011445        if ( $requesting_user->save() ) {
    1302                 $admin = groups_get_group_admin( $group_id );
    1303                
    1304                 // Saved okay, now send the email notification
    1305                 groups_notification_new_membership_request( $requesting_user_id, $admin->user_id, $group_id, $requesting_user->id );
    1306                
    1307                 do_action( 'bp_groups_group_membership_requested', $requesting_user_id, $admin->user_id, $group_id, $requesting_user->id );
     1446                $admins = groups_get_group_admins( $group_id );
     1447               
     1448                for ( $i = 0; $i < count( $admins ); $i++ ) {
     1449                        // Saved okay, now send the email notification
     1450                        groups_notification_new_membership_request( $requesting_user_id, $admins[$i]->user_id, $group_id, $requesting_user->id );
     1451                }
     1452               
     1453                do_action( 'bp_groups_group_membership_requested', $requesting_user_id, $admins, $group_id, $requesting_user->id );
    13081454       
    13091455                return true;
     
    13921538        return BP_Groups_Group::get_random();
    13931539}
    1394 
    1395 
    13961540
    13971541//
  • trunk/bp-groups/bp-groups-ajax.php

    r531 r540  
    159159add_action( 'wp_ajax_get_group_members', 'groups_ajax_member_list' );
    160160
     161
     162function groups_ajax_member_admin_list() {
     163        global $bp;
     164
     165        check_ajax_referer('bp_groups_member_admin_list'); ?>
     166       
     167        <?php if ( bp_group_has_members( $_REQUEST['group_id'], $_REQUEST['num'] ) ) : ?>
     168       
     169                <?php if ( bp_group_member_needs_pagination() ) : ?>
     170                        <div id="member-count" class="pag-count">
     171                                <?php bp_group_member_pagination_count() ?>
     172                        </div>
     173
     174                        <div id="member-admin-pagination" class="pagination-links">
     175                                <?php bp_group_member_admin_pagination() ?>
     176                        </div>
     177                <?php endif; ?>
     178       
     179                <ul id="members-list" class="item-list single-line">
     180                <?php while ( bp_group_members() ) : bp_group_the_member(); ?>
     181                        <?php if ( bp_group_member_is_banned() ) : ?>
     182                                <li class="banned-user">
     183                                        <?php bp_group_member_avatar_mini() ?>
     184
     185                                        <h5><?php bp_group_member_link() ?> (banned) <span class="small"> &mdash; <a href="<?php bp_group_member_unban_link() ?>" title="Kick and ban this member">Remove Ban</a> </h5>
     186                        <?php else : ?>
     187                                <li>
     188                                        <?php bp_group_member_avatar_mini() ?>
     189                                        <h5><?php bp_group_member_link() ?>  <span class="small"> &mdash; <a href="<?php bp_group_member_ban_link() ?>" title="Kick and ban this member">Kick &amp; Ban</a> | <a href="<?php bp_group_member_promote_link() ?>" title="Promote this member">Promote to Moderator</a></span></h5>
     190
     191                        <?php endif; ?>
     192                                </li>
     193                <?php endwhile; ?>
     194                </ul>
     195        <?php else: ?>
     196
     197                <div id="message" class="info">
     198                        <p>This group has no members.</p>
     199                </div>
     200
     201        <?php endif;?>
     202        <input type="hidden" name="group_id" id="group_id" value="<?php echo $_REQUEST['group_id'] ?>" />
     203<?php
     204}
     205add_action( 'wp_ajax_get_group_members_admin', 'groups_ajax_member_admin_list' );
     206
     207fuction
     208
    161209?>
  • trunk/bp-groups/bp-groups-classes.php

    r531 r540  
    186186                global $wpdb, $bp;
    187187               
    188                 return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, is_admin, inviter_id, user_title FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1 ORDER BY rand()", $this->id ) );
     188                return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, is_admin, inviter_id, user_title, is_mod FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1 AND is_banned = 0 ORDER BY rand()", $this->id ) );
    189189        }
    190190               
    191191        function get_administrators() {
    192192                for ( $i = 0; $i < count($this->user_dataset); $i++ ) {
    193                         if ( $this->user_dataset[$i]->is_admin ) {
     193                        if ( $this->user_dataset[$i]->is_admin )
    194194                                $admins[] = new BP_Groups_Member( $this->user_dataset[$i]->user_id, $this->id );
    195                         }
    196195                }       
    197196               
     
    203202               
    204203                for ( $i = 0; $i < $total_randoms; $i++ ) {
    205                         $users[] = new BP_Groups_Member( $this->user_dataset[$i]->user_id, $this->id );
     204                        if ( !(int)$this->user_dataset[$i]->is_banned )
     205                                $users[] = new BP_Groups_Member( $this->user_dataset[$i]->user_id, $this->id );
    206206                }
    207207                return $users;
     
    459459        var $inviter_id;
    460460        var $is_admin;
     461        var $is_mod;
     462        var $is_banned;
    461463        var $user_title;
    462464        var $date_modified;
     
    500502                        $this->inviter_id = $member->inviter_id;
    501503                        $this->is_admin = $member->is_admin;
     504                        $this->is_mod = $member->is_mod;
     505                        $this->is_banned = $member->is_banned;
    502506                        $this->user_title = $member->user_title;
    503                         $this->date_modified = $member->date_modified;
     507                        $this->date_modified = strtotime($member->date_modified);
    504508                        $this->is_confirmed = $member->is_confirmed;
    505509                        $this->comments = $member->comments;
     
    513517               
    514518                if ( $this->id ) {
    515                         $sql = $wpdb->prepare( "UPDATE " . $bp['groups']['table_name_members'] . " SET inviter_id = %d, is_admin = %d, user_title = %s, date_modified = FROM_UNIXTIME(%d), is_confirmed = %d, comments = %s WHERE id = %d", $this->inviter_id, $this->is_admin, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments, $this->id );
    516                
     519                        $sql = $wpdb->prepare( "UPDATE " . $bp['groups']['table_name_members'] . " SET inviter_id = %d, is_admin = %d, is_mod = %d, is_banned = %d, user_title = %s, date_modified = FROM_UNIXTIME(%d), is_confirmed = %d, comments = %s WHERE id = %d", $this->inviter_id, $this->is_admin, $this->is_mod, $this->is_banned, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments, $this->id );
    517520                } else {
    518                         $sql = $wpdb->prepare( "INSERT INTO " . $bp['groups']['table_name_members'] . " ( user_id, group_id, inviter_id, is_admin, user_title, date_modified, is_confirmed, comments ) VALUES ( %d, %d, %d, %d, %s, FROM_UNIXTIME(%d), %d, %s )", $this->user_id, $this->group_id, $this->inviter_id, $this->is_admin, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments );
     521                        $sql = $wpdb->prepare( "INSERT INTO " . $bp['groups']['table_name_members'] . " ( user_id, group_id, inviter_id, is_admin, is_mod, is_banned, user_title, date_modified, is_confirmed, comments ) VALUES ( %d, %d, %d, %d, %d, %d, %s, FROM_UNIXTIME(%d), %d, %s )", $this->user_id, $this->group_id, $this->inviter_id, $this->is_admin, $this->is_mod, $this->is_banned, $this->user_title, $this->date_modified, $this->is_confirmed, $this->comments );
    519522                }
    520523
     
    527530       
    528531        function promote() {
    529                
     532                // Check the users current status
     533               
     534                // Not letting mods be promoted to admins right now. In the future though yes.
     535                if ( $this->is_admin || $this->is_mod )
     536                        return false;
     537               
     538                $this->is_mod = 1;
     539                return $this->save();
    530540        }
    531541       
    532542        function demote() {
    533                
     543                if ( $this->is_admin )
     544                        return false;
     545               
     546                if ( !$this->is_mod )
     547                        return false;
     548               
     549                $this->is_mod = 0;
     550                return $this->save();           
     551        }
     552       
     553        function ban() {
     554                if ( $this->is_admin )
     555                        return false;
     556               
     557                $this->is_mod = 0;
     558                $this->is_banned = 1;
     559               
     560                groups_update_groupmeta( $this->group_id, 'total_member_count', ( (int) groups_get_groupmeta( $this->group_id, 'total_member_count' ) - 1 ) );
     561               
     562                return $this->save();           
     563        }
     564       
     565        function unban() {
     566                if ( $this->is_admin )
     567                        return false;
     568               
     569                $this->is_banned = 0;
     570
     571                groups_update_groupmeta( $this->group_id, 'total_member_count', ( (int) groups_get_groupmeta( $this->group_id, 'total_member_count' ) + 1 ) );
     572               
     573                return $this->save();           
    534574        }
    535575       
     
    551591               
    552592                $delete_result = $wpdb->query( $wpdb->prepare( "DELETE FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d", $user_id, $group_id ) );
    553 
     593               
    554594                return $delete_result;
    555595        }
     
    563603                // If the user is logged in and viewing their own groups, we can show hidden and closed groups
    564604                if ( bp_is_home() ) {
    565                         $group_ids = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT group_id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND inviter_id = 0$pag_sql", $user_id ) );   
     605                        $group_ids = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT group_id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND inviter_id = 0 AND is_banned = 0{$pag_sql}", $user_id ) );       
    566606                } else {
    567                         $group_ids = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.inviter_id = 0$pag_sql", $user_id ) );     
     607                        $group_ids = $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.inviter_id = 0 AND m.is_banned = 0{$pag_sql}", $user_id ) );       
    568608                }
    569609               
     
    581621                       
    582622                if ( bp_is_home() ) {
    583                         return $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(group_id) FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND inviter_id = 0", $user_id ) );                 
     623                        return $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(group_id) FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND inviter_id = 0 AND is_banned = 0", $user_id ) );                       
    584624                } else {
    585                         return $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(m.group_id) FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.inviter_id = 0", $user_id ) );                   
     625                        return $wpdb->get_var( $wpdb->prepare( "SELECT DISTINCT count(m.group_id) FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.inviter_id = 0 m.is_banned = 0", $user_id ) );                   
    586626                }
    587627        }
     
    602642                global $wpdb, $bp;
    603643               
    604                 return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_admin = 1", $user_id, $group_id ) );
     644                return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_admin = 1 AND is_banned = 0", $user_id, $group_id ) );
     645        }
     646       
     647        function check_is_mod( $user_id, $group_id ) {
     648                global $wpdb, $bp;
     649               
     650                return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_mod = 1 AND is_banned = 0", $user_id, $group_id ) );
    605651        }
    606652       
     
    608654                global $wpdb, $bp;
    609655               
    610                 return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_confirmed = 1", $user_id, $group_id ) );   
     656                return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_confirmed = 1 AND is_banned = 0", $user_id, $group_id ) );
     657        }
     658       
     659        function check_is_banned( $user_id, $group_id ) {
     660                global $wpdb, $bp;
     661               
     662                return $wpdb->get_var( $wpdb->prepare( "SELECT is_banned FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d", $user_id, $group_id ) );
    611663        }
    612664       
     
    614666                global $wpdb, $bp;
    615667               
    616                 return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_confirmed = 0", $user_id, $group_id ) );   
     668                return $wpdb->query( $wpdb->prepare( "SELECT id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND group_id = %d AND is_confirmed = 0 AND is_banned = 0", $user_id, $group_id ) );
    617669        }
    618670       
     
    622674                // If the user is logged in and viewing their random groups, we can show hidden and closed groups
    623675                if ( bp_is_home() ) {
    624                         return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT group_id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND is_confirmed = 1 ORDER BY rand() LIMIT $total_groups", $user_id ) );
     676                        return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT group_id FROM " . $bp['groups']['table_name_members'] . " WHERE user_id = %d AND is_confirmed = 1 AND is_banned = 0 ORDER BY rand() LIMIT $total_groups", $user_id ) );
    625677                } else {
    626                         return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.is_confirmed = 1 ORDER BY rand() LIMIT $total_groups", $user_id ) );                     
    627                 }
    628         }
    629        
    630         function get_group_administrator_id( $group_id ) {
     678                        return $wpdb->get_col( $wpdb->prepare( "SELECT DISTINCT m.group_id FROM " . $bp['groups']['table_name_members'] . " m, " . $bp['groups']['table_name'] . " g WHERE m.group_id = g.id AND g.status != 'hidden' AND m.user_id = %d AND m.is_confirmed = 1 AND m.is_banned = 0 ORDER BY rand() LIMIT $total_groups", $user_id ) );                 
     679                }
     680        }
     681       
     682        function get_group_administrator_ids( $group_id ) {
    631683                global $bp, $wpdb;
    632684               
    633                 return $wpdb->get_row( $wpdb->prepare( "SELECT user_id FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_admin = 1", $group_id ) );
    634         }
    635        
    636         function get_all_for_group( $group_id, $limit = false, $page = false ) {
     685                return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, date_modified FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_admin = 1 AND is_banned = 0", $group_id ) );
     686        }
     687       
     688        function get_group_moderator_ids( $group_id ) {
    637689                global $bp, $wpdb;
    638690               
     691                return $wpdb->get_results( $wpdb->prepare( "SELECT user_id, date_modified FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_mod = 1 AND is_banned = 0", $group_id ) );
     692        }
     693       
     694        function get_all_for_group( $group_id, $limit = false, $page = false, $exclude_admins_mods = true, $exclude_banned = true ) {
     695                global $bp, $wpdb;
     696               
    639697                if ( $limit && $page )
    640                         $pag_sql = $wpdb->prepare( " LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
    641                
    642                 $members = $wpdb->get_results( $wpdb->prepare( "SELECT user_id, date_modified FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1 {$pag_sql}", $group_id ) );
     698                        $pag_sql = $wpdb->prepare( "LIMIT %d, %d", intval( ( $page - 1 ) * $limit), intval( $limit ) );
     699               
     700                if ( $exclude_admins_mods )
     701                        $exclude_sql = $wpdb->prepare( "AND is_admin = 0 AND is_mod = 0" );
     702               
     703                if ( $exclude_banned )
     704                        $banned_sql = $wpdb->prepare( " AND is_banned = 0" );
     705               
     706                $members = $wpdb->get_results( $wpdb->prepare( "SELECT user_id, date_modified FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1 {$banned_sql} {$exclude_sql} {$pag_sql}", $group_id ) );
    643707               
    644708                if ( !$members )
     
    648712                        $total_member_count = count($members);
    649713                else
    650                         $total_member_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(user_id) FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1", $group_id ) );
     714                        $total_member_count = $wpdb->get_var( $wpdb->prepare( "SELECT count(user_id) FROM " . $bp['groups']['table_name_members'] . " WHERE group_id = %d AND is_confirmed = 1 {$banned_sql} {$exclude_sql}", $group_id ) );
    651715       
    652716                return array( 'members' => $members, 'count' => $total_member_count );
  • trunk/bp-groups/bp-groups-notifications.php

    r515 r540  
    175175}
    176176
     177function groups_notification_promoted_member( $user_id, $group_id ) {
     178        global $bp, $current_user;
     179
     180        if ( groups_is_user_admin( $user_id, $group_id ) ) {
     181                $promoted_to = 'admin';
     182                $type = 'member_promoted_to_admin';
     183        } else {
     184                $promoted_to = 'mod';
     185                $type = 'member_promoted_to_mod';
     186        }
     187       
     188        // Post a screen notification first.
     189        bp_core_add_notification( $group_id, $user_id, 'groups', $type );
     190
     191        if ( get_usermeta( $user_id, 'notification_group_promotion' ) == 'no' )
     192                return false;
     193
     194        $group = new BP_Groups_Group( $group_id, false, false );
     195        $ud = get_userdata($user_id);
     196
     197        $group_link = bp_group_permalink( $group, false );
     198        $settings_link = site_url() . '/' . MEMBERS_SLUG . '/' . $ud->user_login . '/settings/notifications';
     199
     200        // Set up and send the message
     201        $to = $ud->user_email;
     202
     203        $subject = sprintf( __( 'You have been promoted in the group: "%s"', 'buddypress' ), stripslashes($group->name) );
     204
     205                $message = sprintf( __(
     206'You have been promoted to % for the group: "%s".
     207
     208To view the group please visit: %s
     209
     210---------------------
     211', 'buddypress' ), stripslashes($group->name), $group_link );
     212
     213        $message .= sprintf( __( 'To disable these notifications please log in and go to: %s', 'buddypress' ), $settings_link );
     214
     215        // Send it
     216        wp_mail( $to, $subject, $message );
     217}
     218add_action( 'bp_groups_promoted_member', 'groups_notification_promoted_member', 10, 2 );
     219
    177220?>
  • trunk/bp-groups/bp-groups-templatetags.php

    r536 r540  
    313313        if ( !$admins = &$groups_template->group->admins )
    314314                $admins = $groups_template->group->get_administrators();
    315        
     315
    316316        if ( $admins ) {
    317317                if ( $full_list ) { ?>
     
    338338}
    339339
     340function bp_group_list_mods( $full_list = true ) {
     341        global $groups_template, $group_mods;
     342       
     343        if ( $group_mods ) {
     344                if ( $full_list ) { ?>
     345                        <ul id="group-mods" class="mods-list">
     346                        <?php for ( $i = 0; $i < count($group_mods); $i++ ) { ?>
     347                                <li>
     348                                        <?php echo bp_core_get_avatar( $group_mods[$i]->user_id, 1, false, 36, 36 ) ?>
     349                                        <h5><?php echo bp_core_get_userlink( $group_mods[$i]->user_id ) ?></h5>
     350                                        <span class="activity"><?php _e( 'Group Mod', 'buddypress' ) ?></span>
     351                                        <div class="clear"></div>
     352                                </li>
     353                        <?php } ?>
     354                        </ul>
     355                <?php } else { ?>
     356                        <?php for ( $i = 0; $i < count($admins); $i++ ) { ?>
     357                                <?php echo bp_core_get_userlink( $group_mods[$i]->user_id ) . ' ' ?>
     358                        <?php } ?>
     359                <?php } ?>
     360        <?php } else { ?>
     361                <span class="activity">No Admin</span>
     362        <?php } ?>
     363       
     364<?php
     365}
     366
    340367function bp_group_all_members_permalink() {
    341368        global $groups_template, $bp;
     
    457484}
    458485
     486function bp_group_admin_memberlist( $admin_list = false ) {
     487        global $groups_template;
     488       
     489        $admins = groups_get_group_admins( $groups_template->group->id );
     490?>
     491        <?php if ( $admins ) { ?>
     492                <ul id="admins-list" class="item-list<?php if ( $admin_list ) { ?> single-line<?php } ?>">
     493                <?php foreach ( $admins as $admin ) { ?>
     494                        <?php if ( $admin_list ) { ?>
     495                        <li>
     496                                <?php echo bp_core_get_avatar( $admin->user_id, 1, false, 30, 30 ) ?>
     497                                <h5><?php echo bp_core_get_userlink( $admin->user_id ) ?></h5>
     498                        </li>
     499                        <?php } else { ?>
     500                        <li>
     501                                <?php echo bp_core_get_avatar( $admin->user_id, 1 ) ?>
     502                                <h5><?php echo bp_core_get_userlink( $admin->user_id ) ?></h5>
     503                                <span class="activity"><?php echo bp_core_get_last_activity( strtotime( $admin->date_modified ), __( 'joined %s ago', 'buddypress') ); ?></span>
     504                               
     505                                <?php if ( function_exists( 'friends_install' ) ) : ?>
     506                                        <div class="action">
     507                                                <?php bp_add_friend_button( $admin->user_id ) ?>
     508                                        </div>
     509                                <?php endif; ?>
     510                        </li>           
     511                        <?php } ?>
     512                <?php } ?>
     513                </ul>
     514        <?php } else { ?>
     515                <div id="message" class="info">
     516                        <?php _e( 'This group has no administrators', 'buddypress' ); ?>
     517                </div>
     518        <?php }
     519}
     520
     521function bp_group_mod_memberlist( $admin_list = false ) {
     522        global $groups_template, $group_mods;   
     523        ?>
     524                <?php if ( $group_mods ) { ?>
     525                        <ul id="mods-list" class="item-list<?php if ( $admin_list ) { ?> single-line<?php } ?>">
     526                        <?php foreach ( $group_mods as $mod ) { ?>
     527                                <?php if ( $admin_list ) { ?>
     528                                <li>
     529                                        <?php echo bp_core_get_avatar( $mod->user_id, 1, false, 30, 30 ) ?>
     530                                        <h5><?php echo bp_core_get_userlink( $mod->user_id ) ?>  <span class="small"> &mdash; <a href="<?php bp_group_member_ban_link() ?>"><?php _e( 'Kick &amp; Ban', 'buddypress' ) ?></a> | <a href="<?php bp_group_member_demote_link($mod->user_id) ?>"><?php _e( 'Demote to Member', 'buddypress' ) ?></a></span></h5>
     531                                </li>
     532                                <?php } else { ?>
     533                                <li>
     534                                        <?php echo bp_core_get_avatar( $mod->user_id, 1 ) ?>
     535                                        <h5><?php echo bp_core_get_userlink( $mod->user_id ) ?></h5>
     536                                        <span class="activity"><?php echo bp_core_get_last_activity( strtotime( $mod->date_modified ), __( 'joined %s ago', 'buddypress') ); ?></span>
     537                                       
     538                                        <?php if ( function_exists( 'friends_install' ) ) : ?>
     539                                                <div class="action">
     540                                                        <?php bp_add_friend_button( $mod->user_id ) ?>
     541                                                </div>
     542                                        <?php endif; ?>
     543                                </li>           
     544                                <?php } ?>                     
     545                        <?php } ?>
     546                        </ul>
     547                <?php } else { ?>
     548                        <div id="message" class="info">
     549                                <p><?php _e( 'This group has no moderators', 'buddypress' ); ?></p>
     550                        </div>
     551                <?php }
     552}
     553
     554function bp_group_has_moderators() {
     555        global $group_mods, $groups_template;
     556       
     557        $group_mods = groups_get_group_mods( $groups_template->group->id );
     558        return $group_mods;
     559}
     560
     561function bp_group_member_promote_link() {
     562        global $members_template, $groups_template, $bp;
     563
     564        echo bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/promote/' . $members_template->member->user_id;
     565}
     566
     567function bp_group_member_demote_link( $user_id = false) {
     568        global $members_template, $groups_template, $bp;
     569       
     570        if ( !$user_id )
     571                $user_id = $members_template->member->user_id;
     572       
     573        echo bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/demote/' . $user_id;
     574}
     575
     576function bp_group_member_ban_link() {
     577        global $members_template, $groups_template, $bp;
     578       
     579        echo bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/ban/' . $members_template->member->user_id;
     580}
     581
     582function bp_group_member_unban_link() {
     583        global $members_template, $groups_template, $bp;
     584       
     585        echo bp_group_permalink( $groups_template->group, false ) . '/admin/manage-members/unban/' . $members_template->member->user_id;       
     586}
     587
    459588function bp_group_admin_tabs() {
    460589        global $bp, $groups_template;
     
    462591        $current_tab = $bp['action_variables'][0];
    463592?>
    464         <li<?php if ( $current_tab == 'edit-details' || $current_tab == '' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/edit-details"><?php _e('Edit Details', 'buddypress') ?></a></li>
    465         <li<?php if ( $current_tab == 'group-settings' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/group-settings"><?php _e('Group Settings', 'buddypress') ?></a></li>
    466         <li<?php if ( $current_tab == 'manage-members' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/manage-members"><?php _e('Manage Members', 'buddypress') ?></a></li>
    467        
    468         <?php if ( $groups_template->group->status == 'private' ) : ?>
     593        <?php if ( $bp['is_item_admin'] || $bp['is_item_mod'] ) { ?>
     594                <li<?php if ( $current_tab == 'edit-details' || $current_tab == '' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/edit-details"><?php _e('Edit Details', 'buddypress') ?></a></li>
     595        <?php } ?>
     596
     597        <?php if ( $bp['is_item_admin'] ) { ?> 
     598                <li<?php if ( $current_tab == 'group-settings' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/group-settings"><?php _e('Group Settings', 'buddypress') ?></a></li>
     599        <?php } ?>
     600
     601        <?php if ( $bp['is_item_admin'] ) { ?>                 
     602                <li<?php if ( $current_tab == 'manage-members' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/manage-members"><?php _e('Manage Members', 'buddypress') ?></a></li>
     603        <?php } ?>
     604       
     605        <?php if ( $bp['is_item_admin'] && $groups_template->group->status == 'private' ) : ?>
    469606        <li<?php if ( $current_tab == 'membership-requests' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/membership-requests"><?php _e('Membership Requests', 'buddypress') ?></a></li>
    470607        <?php endif; ?>
    471        
    472         <li<?php if ( $current_tab == 'delete-group' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/delete-group"><?php _e('Delete Group', 'buddypress') ?></a></li>
     608
     609        <?php if ( $bp['is_item_admin'] ) { ?>         
     610                <li<?php if ( $current_tab == 'delete-group' ) : ?> class="current"<?php endif; ?>><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] ?>/<?php echo $groups_template->group->slug ?>/admin/delete-group"><?php _e('Delete Group', 'buddypress') ?></a></li>
     611        <?php } ?>
    473612       
    474613<?php
     
    680819}
    681820
    682 function bp_group_list_members() {
    683         global $groups_template, $bp;
    684 
    685         for ( $i = 0; $i < count($groups_template->group->user_dataset); $i++ ) {
    686                 $member = new BP_Groups_Member( $groups_template->group->user_dataset[$i]->user_id, $groups_template->group->id );
    687 
    688                 ?><li id="uid-<?php echo $user->id ?>">
    689                         <?php echo $member->user->avatar_thumb ?>
    690                         <p><?php echo $member->user->user_link ?> <?php if ( $member->user_title ) { ?><?php echo '<span class="small">- ' . $member->user_title . '</span>' ?><?php } ?></p>
    691                         <span class="activity"><?php echo sprintf( __( 'joined %s ago', 'buddypress' ), bp_core_time_since( strtotime( $member->date_modified ) ) ); ?></span>
    692         <?php if ( bp_exists('friends') && function_exists('bp_add_friend_button') ) { ?>
    693                         <div class="action">
    694                                 <?php bp_add_friend_button( $member->user->id ) ?>
    695                         </div>
    696         <?php } ?>
    697                    </li>
    698                 <?php
    699         }
    700 }
    701 
    702821function bp_group_accept_invite_link() {
    703822        global $groups_template, $bp;
     
    775894        global $bp, $groups_template;
    776895       
    777         if ( !is_user_logged_in() || BP_Groups_Member::check_is_member( $bp['loggedin_userid'], $groups_template->group->id ) )
     896        if ( !is_user_logged_in() || BP_Groups_Member::check_is_member( $bp['loggedin_userid'], $groups_template->group->id ) || groups_is_user_banned( $bp['loggedin_userid'], $groups_template->group->id ) )
    778897                return false;
    779898               
     
    852971        var $total_member_count;
    853972       
    854         function bp_groups_group_members_template( $group_id ) {
     973        function bp_groups_group_members_template( $group_id, $num_per_page, $exclude_admins_mods, $exclude_banned ) {
    855974                global $bp;
    856975               
    857976                $this->pag_page = isset( $_REQUEST['mlpage'] ) ? intval( $_REQUEST['mlpage'] ) : 1;
    858                 $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : 5;
    859                
    860                 $members = BP_Groups_Member::get_all_for_group( $group_id, $this->pag_num, $this->pag_page );
     977                $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $num_per_page;
     978               
     979                $members = BP_Groups_Member::get_all_for_group( $group_id, $this->pag_num, $this->pag_page, $exclude_admins_mods, $exclude_banned );
    861980               
    862981                $this->total_member_count = $members['count'];
     
    9221041}
    9231042
    924 function bp_group_has_members( $group_id = false ) {
     1043function bp_group_has_members( $group_id = false, $num_per_page = 5, $exclude_admins_mods = true, $exclude_banned = true ) {
    9251044        global $members_template, $groups_template;
    9261045       
    927         if ( !$group_id )
    928                 $group_id = $groups_template->group->id;
    929 
    930         $members_template = new BP_Groups_Group_Members_Template( $group_id );
     1046        if ( !$groups_template )
     1047                $groups_template->group = new BP_Groups_Group( $group_id );
     1048       
     1049
     1050        $members_template = new BP_Groups_Group_Members_Template( $groups_template->group->id, $num_per_page, $exclude_admins_mods, $exclude_banned );
    9311051
    9321052        return $members_template->has_members();
     
    9511071}
    9521072
     1073function bp_group_member_avatar_mini( $width = 30, $height = 30 ) {
     1074        global $members_template;
     1075       
     1076        echo bp_core_get_avatar( $members_template->member->user_id, 1, false, $width, $height );
     1077}
     1078
    9531079function bp_group_member_link() {
    9541080        global $members_template;
    9551081       
    9561082        echo bp_core_get_userlink( $members_template->member->user_id );
     1083}
     1084
     1085function bp_group_member_is_banned() {
     1086        global $members_template, $groups_template;
     1087
     1088        return groups_is_user_banned( $members_template->member->user_id, $groups_template->group->id );
    9571089}
    9581090
     
    9901122        global $members_template;
    9911123        echo $members_template->pag_links;
    992         wp_nonce_field( 'bp_groups_member_list' );
     1124        wp_nonce_field( 'bp_groups_member_list', '_member_pag_nonce' );
    9931125}
    9941126
     
    10001132
    10011133        echo sprintf( __( 'Viewing members %d to %d (%d total members)', 'buddypress' ), $from_num, $to_num, $members_template->total_member_count ); 
     1134}
     1135
     1136function bp_group_member_admin_pagination() {
     1137        global $members_template;
     1138        echo $members_template->pag_links;
     1139        wp_nonce_field( 'bp_groups_member_admin_list', '_member_admin_pag_nonce' );
    10021140}
    10031141
     
    10201158        var $total_request_count;
    10211159       
    1022         function bp_groups_membership_requests_template( $group_id ) {
     1160        function bp_groups_membership_requests_template( $group_id, $num_per_page ) {
    10231161                global $bp;
    10241162               
    10251163                $this->pag_page = isset( $_REQUEST['mrpage'] ) ? intval( $_REQUEST['mrpage'] ) : 1;
    1026                 $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : 5;
     1164                $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $num_per_page;
    10271165               
    10281166                $this->requests = BP_Groups_Group::get_membership_requests( $group_id, $this->pag_num, $this->pag_page );
     
    10881226}
    10891227
    1090 function bp_group_has_membership_requests() {
     1228function bp_group_has_membership_requests( $num_per_page = 5 ) {
    10911229        global $requests_template, $groups_template;
    10921230       
    1093         $requests_template = new BP_Groups_Membership_Requests_Template( $groups_template->group->id );
     1231        $requests_template = new BP_Groups_Membership_Requests_Template( $groups_template->group->id, $num_per_page );
    10941232
    10951233        return $requests_template->has_requests();
  • trunk/bp-groups/js/general.js

    r531 r540  
    210210                                action: 'get_group_members',
    211211                                'cookie': encodeURIComponent(document.cookie),
    212                                 '_wpnonce': jQuery("input#_wpnonce").val(),
     212                                '_wpnonce': jQuery("input#_member_pag_nonce").val(),
    213213                                'group_id': jQuery("#group_id").val(),
    214214                                'mlpage': mlpage[1],
     
    232232                }
    233233        );
     234       
     235        jQuery("div#member-admin-pagination a").livequery('click',
     236                function() {
     237                        jQuery('#ajax-loader').toggle();
     238
     239                        var mlpage = jQuery(this).attr('href');
     240                        mlpage = mlpage.split('=');
     241
     242                        jQuery.post( ajaxurl, {
     243                                action: 'get_group_members_admin',
     244                                'cookie': encodeURIComponent(document.cookie),
     245                                '_wpnonce': jQuery("input#_member_admin_pag_nonce").val(),
     246                                'group_id': jQuery("#group_id").val(),
     247                                'mlpage': mlpage[1],
     248                                'num': 5
     249                        },
     250                        function(response)
     251                        {       
     252                                response = response.substr(0, response.length-1);
     253
     254                                jQuery("form#group-members-form").fadeOut(200,
     255                                        function() {
     256                                                jQuery("form#group-members-form").html(response);
     257                                                jQuery("form#group-members-form").fadeIn(200);
     258                                        }
     259                                );
     260
     261                                return false;
     262                        });
     263
     264                        return false;
     265                }
     266        );
    234267});
  • trunk/bp-messages.php

    r527 r540  
    334334}
    335335
    336 function messages_format_notifications( $action, $item_id, $total_items ) {
     336function messages_format_notifications( $action, $item_id, $secondary_item_id, $total_items ) {
    337337        global $bp;
    338338       
Note: See TracChangeset for help on using the changeset viewer.