Ticket #2742: 2742.diff
File 2742.diff, 7.4 KB (added by , 13 years ago) |
---|
-
bp-themes/bp-default/groups/single/admin.php
86 86 </ul> 87 87 </label> 88 88 </div> 89 90 <h4><?php _e( 'Group Home', 'buddypress' ); ?></h4> 89 91 92 <p><?php _e( 'Select the content you would like to appear on the group\'s Home tab.', 'buddypress' ) ?></p> 93 94 <?php bp_group_home_content_options() ?> 95 90 96 <?php do_action( 'bp_after_group_settings_admin' ); ?> 91 97 92 98 <p><input type="submit" value="<?php _e( 'Save Changes', 'buddypress' ) ?> →" id="save" name="save" /></p> -
bp-themes/bp-default/groups/single/home.php
29 29 30 30 <?php do_action( 'bp_before_group_body' ); 31 31 32 if ( !bp_group_is_visible() ) : 33 // The group is not visible, show the status message 34 35 do_action( 'bp_before_group_status_message' ); ?> 36 37 <div id="message" class="info"> 38 <p><?php bp_group_status_message(); ?></p> 39 </div> 40 41 <?php do_action( 'bp_after_group_status_message' ); 42 endif; 43 32 44 if ( bp_is_group_admin_page() && bp_group_is_visible() ) : 33 45 locate_template( array( 'groups/single/admin.php' ), true ); 34 46 … … 43 55 44 56 elseif ( bp_is_group_membership_request() ) : 45 57 locate_template( array( 'groups/single/request-membership.php' ), true ); 46 47 elseif ( bp_group_is_visible() && bp_is_active( 'activity' ) ) : 48 locate_template( array( 'groups/single/activity.php' ), true ); 49 50 elseif ( bp_group_is_visible() && bp_is_active( 'forums' ) ) : 51 locate_template( array( 'groups/single/forum.php' ), true ); 52 53 elseif ( bp_group_is_visible() ) : 54 locate_template( array( 'groups/single/members.php' ), true ); 55 56 elseif ( !bp_group_is_visible() ) : 57 // The group is not visible, show the status message 58 59 do_action( 'bp_before_group_status_message' ); ?> 60 61 <div id="message" class="info"> 62 <p><?php bp_group_status_message(); ?></p> 63 </div> 64 65 <?php do_action( 'bp_after_group_status_message' ); 66 58 67 59 else : 68 // If nothing sticks, just load a group front template if one exists. 69 locate_template( array( 'groups/single/front.php' ), true ); 70 60 // If we get to this point, we are viewing the group home 61 bp_group_locate_default_template(); 71 62 endif; 72 63 73 64 do_action( 'bp_after_group_body' ); ?> -
bp-groups/bp-groups-screens.php
481 481 $enable_forum = ( isset($_POST['group-show-forum'] ) ) ? 1 : 0; 482 482 $allowed_status = apply_filters( 'groups_allowed_status', array( 'public', 'private', 'hidden' ) ); 483 483 $status = ( in_array( $_POST['group-status'], (array)$allowed_status ) ) ? $_POST['group-status'] : 'public'; 484 $home_content = !empty( $_POST['group-home-content'] ) ? $_POST['group-home-content'] : 'members'; 484 485 485 486 // Check the nonce 486 487 if ( !check_admin_referer( 'groups_edit_group_settings' ) ) 487 488 return false; 488 489 489 if ( !groups_edit_group_settings( $_POST['group-id'], $enable_forum, $status ) ) {490 if ( !groups_edit_group_settings( $_POST['group-id'], $enable_forum, $status, $home_content ) ) { 490 491 bp_core_add_message( __( 'There was an error updating group settings, please try again.', 'buddypress' ), 'error' ); 491 492 } else { 492 493 bp_core_add_message( __( 'Group settings were successfully updated.', 'buddypress' ) ); -
bp-groups/bp-groups-functions.php
118 118 return true; 119 119 } 120 120 121 function groups_edit_group_settings( $group_id, $enable_forum, $status ) {121 function groups_edit_group_settings( $group_id, $enable_forum, $status, $home_content = 'members' ) { 122 122 global $bp; 123 123 124 124 $group = new BP_Groups_Group( $group_id ); … … 144 144 } 145 145 } 146 146 147 // Save the home content 148 groups_update_groupmeta( $group->id, 'group-home-content', $home_content ); 149 147 150 groups_update_groupmeta( $group->id, 'last_activity', bp_core_current_time() ); 148 151 do_action( 'groups_settings_updated', $group->id ); 149 152 -
bp-groups/bp-groups-template.php
513 513 return apply_filters( 'bp_get_group_date_created', bp_core_time_since( strtotime( $group->date_created ) ) ); 514 514 } 515 515 516 function bp_group_locate_default_template() { 517 518 $default_template = groups_get_groupmeta( bp_get_group_id(), 'group-home-content' ); 519 520 if ( empty( $default_template ) ) { 521 $default_template = 'front'; 522 523 if ( bp_group_is_visible() ) { 524 if ( bp_is_active( 'activity' ) ) { 525 $default_template = 'activity'; 526 } else if ( bp_is_active( 'forums' ) ) { 527 $default_template = 'forum'; 528 } else { 529 $default_template = 'members'; 530 } 531 } 532 } 533 534 $default_template = 'groups/single/' . $default_template . '.php'; 535 536 $default_template = apply_filters( 'bp_group_locate_default_template', $default_template ); 537 538 locate_template( array( $default_template ), true ); 539 } 540 516 541 function bp_group_is_admin() { 517 542 global $bp; 518 543 … … 1069 1094 <?php 1070 1095 } 1071 1096 1097 function bp_group_home_content_options() { 1098 global $bp; 1099 1100 // Get a list of tabs available for the current group 1101 1102 // 'members' is available whenever groups are turned on. Others are component-dependent 1103 $group_tabs = array( 1104 'members' => __( 'Members', 'buddypress' ) 1105 ); 1106 1107 if ( bp_is_active( 'activity' ) ) { 1108 $group_tabs['activity'] = __( 'Activity', 'buddypress' ); 1109 } 1110 1111 if ( bp_is_active( 'forums' ) ) { 1112 $group_tabs['forum'] = __( 'Forum', 'buddypress' ); 1113 } 1114 1115 // Now, loop through the options nav to look for others tabs added by plugins 1116 // Check against a list of tabs that cannot be set to the Home tab (keyed by slug) 1117 $home_tab_exceptions = apply_filters( 'bp_group_home_tab_exceptions', array( 1118 'admin', 1119 'home' 1120 ) ); 1121 1122 foreach( $bp->bp_options_nav[$bp->groups->current_group->slug] as $nav_item ) { 1123 if ( !array_key_exists( $nav_item['slug'], $group_tabs ) && !in_array( $nav_item['slug'], $home_tab_exceptions ) ) { 1124 $group_tabs[$nav_item['slug']] = $nav_item['name']; 1125 } 1126 } 1127 1128 $group_tabs = apply_filters( 'bp_group_home_options_tabs', $group_tabs ); 1129 1130 // Build the options markup 1131 $options = array(); 1132 $current_home_content = groups_get_groupmeta( bp_get_group_id(), 'group-home-content' ); 1133 if ( empty( $current_home_content ) ) { 1134 $current_home_content = 'members'; 1135 } 1136 foreach( $group_tabs as $slug => $name ) { 1137 $selected = $current_home_content == $slug ? ' selected="selected"' : ''; 1138 $options[] = "\t\t" . '<option value="' . esc_attr( $slug ) . '"' . $selected . '>' . esc_html( $name ) . '</option>'; 1139 } 1140 1141 $select_markup = '<select name="group-home-content">' . "\n" . implode( "\n", $options ) . "\n\t" . '</select>'; 1142 1143 echo apply_filters( 'bp_group_home_options_markup', $select_markup, $options ); 1144 } 1145 1072 1146 function bp_group_total_for_member() { 1073 1147 echo bp_get_group_total_for_member(); 1074 1148 }