Skip to:
Content

BuddyPress.org

Changeset 540


Ignore:
Timestamp:
11/13/2008 11:20:15 PM (17 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.