Changeset 540 for trunk/bp-groups.php
- Timestamp:
- 11/13/2008 11:20:15 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/bp-groups.php (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-groups.php
r527 r540 3 3 4 4 define ( 'BP_GROUPS_IS_INSTALLED', 1 ); 5 define ( 'BP_GROUPS_VERSION', '0.2. 3' );5 define ( 'BP_GROUPS_VERSION', '0.2.5' ); 6 6 7 7 include_once( 'bp-groups/bp-groups-classes.php' ); … … 12 12 include_once( 'bp-groups/bp-groups-notifications.php' ); 13 13 include_once( 'bp-groups/bp-groups-admin.php' ); 14 15 /*include_once( 'bp-messages/bp-groups-admin.php' );*/16 14 17 15 /************************************************************************** … … 54 52 inviter_id int(11) NOT NULL, 55 53 is_admin tinyint(1) NOT NULL DEFAULT '0', 54 is_mod tinyint(1) NOT NULL DEFAULT '0', 56 55 user_title varchar(100) NOT NULL, 57 56 date_modified datetime NOT NULL, 58 57 comments longtext NOT NULL, 59 58 is_confirmed tinyint(1) NOT NULL DEFAULT '0', 59 is_banned tinyint(1) NOT NULL DEFAULT '0', 60 60 KEY group_id (group_id), 61 KEY is_admin (is_admin), 62 KEY is_mod (is_mod), 61 63 KEY user_id (user_id), 62 64 KEY inviter_id (inviter_id), … … 177 179 $bp['is_item_admin'] = groups_is_user_admin( $bp['loggedin_userid'], $group_obj->id ); 178 180 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 179 185 /* Is the logged in user a member of the group? */ 180 186 $is_member = ( groups_is_user_member( $bp['loggedin_userid'], $group_obj->id ) ) ? true : false; … … 228 234 bp_core_add_subnav_item( $bp['groups']['slug'], 'home', __('Home', 'buddypress'), $group_link, 'groups_screen_group_home', 'group-home' ); 229 235 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'] ) ); 233 239 234 240 // If this is a closed group, and the user is not a member, show a "Request Membership" nav item. … … 516 522 if ( $bp['current_component'] == $bp['groups']['slug'] && $bp['action_variables'][0] == 'edit-details' ) { 517 523 518 if ( !$bp['is_item_ admin'] )524 if ( !$bp['is_item_mod'] ) 519 525 return false; 520 526 … … 564 570 } 565 571 add_action( 'wp', 'groups_screen_group_admin_settings', 4 ); 572 573 function 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 } 644 add_action( 'wp', 'groups_screen_group_admin_manage_members', 4 ); 566 645 567 646 … … 685 764 686 765 // 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 ) ) { 688 767 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' ); 690 769 } else { 691 770 bp_core_add_message( __('You joined the group!', 'buddypress') ); … … 1083 1162 } 1084 1163 1164 function groups_get_slug( $group_id ) { 1165 $group = new BP_Groups_Group( $group_id, false, false ); 1166 return $group->slug; 1167 } 1168 1085 1169 function groups_is_user_admin( $user_id, $group_id ) { 1086 1170 return BP_Groups_Member::check_is_admin( $user_id, $group_id ); 1087 1171 } 1088 1172 1173 function groups_is_user_mod( $user_id, $group_id ) { 1174 return BP_Groups_Member::check_is_mod( $user_id, $group_id ); 1175 } 1176 1089 1177 function groups_is_user_member( $user_id, $group_id ) { 1090 1178 return BP_Groups_Member::check_is_member( $user_id, $group_id ); 1179 } 1180 1181 function groups_is_user_banned( $user_id, $group_id ) { 1182 return BP_Groups_Member::check_is_banned( $user_id, $group_id ); 1091 1183 } 1092 1184 … … 1214 1306 } 1215 1307 1216 function groups_get_group_admin( $group_id ) { 1217 return BP_Groups_Member::get_group_administrator_id( $group_id ); 1308 function groups_get_group_admins( $group_id ) { 1309 return BP_Groups_Member::get_group_administrator_ids( $group_id ); 1310 } 1311 1312 function groups_get_group_mods( $group_id ) { 1313 return BP_Groups_Member::get_group_moderator_ids( $group_id ); 1314 } 1315 1316 function groups_get_group_users( $group_id, $limit = false, $page = false ) { 1317 return BP_Groups_Member::get_all_for_group( $group_id, $limit, $page ); 1218 1318 } 1219 1319 1220 1320 function groups_is_group_admin( $user_id, $group_id ) { 1221 1321 return BP_Groups_Member::check_is_admin( $user_id, $group_id ); 1322 } 1323 1324 function groups_is_group_mod( $user_id, $group_id ) { 1325 return BP_Groups_Member::check_is_mod( $user_id, $group_id ); 1222 1326 } 1223 1327 … … 1284 1388 1285 1389 return true; 1390 } 1391 1392 function 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 1402 function 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 1412 function 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 1422 function 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(); 1286 1430 } 1287 1431 … … 1300 1444 1301 1445 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 ); 1308 1454 1309 1455 return true; … … 1392 1538 return BP_Groups_Group::get_random(); 1393 1539 } 1394 1395 1396 1540 1397 1541 //
Note: See TracChangeset
for help on using the changeset viewer.