Changeset 6695
- Timestamp:
- 12/30/2012 04:27:02 PM (12 years ago)
- Location:
- trunk/bp-core
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/admin/bp-core-actions.php
r6676 r6695 50 50 51 51 // Hook on to admin_init 52 add_action( 'bp_admin_init', 'bp_setup_updater', 999 ); 53 add_action( 'bp_admin_init', 'bp_register_importers' ); 54 add_action( 'bp_admin_init', 'bp_register_admin_style' ); 55 add_action( 'bp_admin_init', 'bp_register_admin_settings' ); 56 add_action( 'bp_admin_init', 'bp_do_activation_redirect', 1 ); 52 add_action( 'bp_admin_init', 'bp_setup_updater', 1000 ); 53 add_action( 'bp_admin_init', 'bp_core_activation_notice', 1010 ); 54 add_action( 'bp_admin_init', 'bp_register_importers' ); 55 add_action( 'bp_admin_init', 'bp_register_admin_style' ); 56 add_action( 'bp_admin_init', 'bp_register_admin_settings' ); 57 add_action( 'bp_admin_init', 'bp_do_activation_redirect', 1 ); 57 58 58 59 // Add a new separator -
trunk/bp-core/admin/bp-core-functions.php
r6689 r6695 160 160 161 161 $bp->admin->notices[] = $notice; 162 } 163 164 /** 165 * Verify that some BP prerequisites are set up properly, and notify the admin if not 166 * 167 * On every Dashboard page, this function checks the following: 168 * - that pretty permalinks are enabled 169 * - that every BP component that needs a WP page for a directory has one 170 * - that no WP page has multiple BP components associated with it 171 * The administrator will be shown a notice for each check that fails. 172 * 173 * @global WPDB $wpdb WordPress DB object 174 * @global WP_Rewrite $wp_rewrite 175 * @since BuddyPress (1.2) 176 */ 177 function bp_core_activation_notice() { 178 global $wpdb, $wp_rewrite; 179 180 $bp = buddypress(); 181 182 // Only the super admin gets warnings 183 if ( !bp_current_user_can( 'bp_moderate' ) ) 184 return; 185 186 // On multisite installs, don't load on a non-root blog, unless do_network_admin is overridden 187 if ( is_multisite() && bp_core_do_network_admin() && !bp_is_root_blog() ) 188 return; 189 190 /** 191 * Check to make sure that the blog setup routine has run. This can't happen during the 192 * wizard because of the order which the components are loaded. We check for multisite here 193 * on the off chance that someone has activated the blogs component and then disabled MS 194 */ 195 if ( bp_is_active( 'blogs' ) ) { 196 $count = $wpdb->get_var( "SELECT COUNT(*) FROM {$bp->blogs->table_name}" ); 197 198 if ( empty( $count ) ) { 199 bp_blogs_record_existing_blogs(); 200 } 201 } 202 203 /** 204 * Are pretty permalinks enabled? 205 */ 206 if ( isset( $_POST['permalink_structure'] ) ) 207 return; 208 209 if ( empty( $wp_rewrite->permalink_structure ) ) { 210 bp_core_add_admin_notice( sprintf( __( '<strong>BuddyPress is almost ready</strong>. You must <a href="%s">update your permalink structure</a> to something other than the default for it to work.', 'buddypress' ), admin_url( 'options-permalink.php' ) ) ); 211 } 212 213 /** 214 * Check for orphaned BP components (BP component is enabled, no WP page exists) 215 */ 216 $orphaned_components = array(); 217 $wp_page_components = array(); 218 219 // Only components with 'has_directory' require a WP page to function 220 foreach( array_keys( $bp->loaded_components ) as $component_id ) { 221 if ( !empty( $bp->{$component_id}->has_directory ) ) { 222 $wp_page_components[] = array( 223 'id' => $component_id, 224 'name' => isset( $bp->{$component_id}->name ) ? $bp->{$component_id}->name : ucwords( $bp->{$component_id}->id ) 225 ); 226 } 227 } 228 229 // Activate and Register are special cases. They are not components but they need WP pages. 230 // If user registration is disabled, we can skip this step. 231 if ( bp_get_signup_allowed() ) { 232 $wp_page_components[] = array( 233 'id' => 'activate', 234 'name' => __( 'Activate', 'buddypress' ) 235 ); 236 237 $wp_page_components[] = array( 238 'id' => 'register', 239 'name' => __( 'Register', 'buddypress' ) 240 ); 241 } 242 243 // On the first admin screen after a new installation, this isn't set, so grab it to supress a misleading error message. 244 if ( empty( $bp->pages->members ) ) 245 $bp->pages = bp_core_get_directory_pages(); 246 247 foreach( $wp_page_components as $component ) { 248 if ( !isset( $bp->pages->{$component['id']} ) ) { 249 $orphaned_components[] = $component['name']; 250 } 251 } 252 253 // Special case: If the Forums component is orphaned, but the bbPress 1.x installation is 254 // not correctly set up, don't show a nag. (In these cases, it's probably the case that the 255 // user is using bbPress 2.x; see https://buddypress.trac.wordpress.org/ticket/4292 256 if ( isset( $bp->forums->name ) && in_array( $bp->forums->name, $orphaned_components ) && !bp_forums_is_installed_correctly() ) { 257 $forum_key = array_search( $bp->forums->name, $orphaned_components ); 258 unset( $orphaned_components[$forum_key] ); 259 $orphaned_components = array_values( $orphaned_components ); 260 } 261 262 if ( !empty( $orphaned_components ) ) { 263 $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) ); 264 $notice = sprintf( __( 'The following active BuddyPress Components do not have associated WordPress Pages: %2$s. <a href="%1$s" class="button-secondary">Repair</a>', 'buddypress' ), $admin_url, '<strong>' . implode( '</strong>, <strong>', $orphaned_components ) . '</strong>' ); 265 266 bp_core_add_admin_notice( $notice ); 267 } 268 269 // BP components cannot share a single WP page. Check for duplicate assignments, and post a message if found. 270 $dupe_names = array(); 271 $page_ids = (array)bp_core_get_directory_page_ids(); 272 $dupes = array_diff_assoc( $page_ids, array_unique( $page_ids ) ); 273 274 if ( !empty( $dupes ) ) { 275 foreach( array_keys( $dupes ) as $dupe_component ) { 276 $dupe_names[] = $bp->pages->{$dupe_component}->title; 277 } 278 279 // Make sure that there are no duplicate duplicates :) 280 $dupe_names = array_unique( $dupe_names ); 281 } 282 283 // If there are duplicates, post a message about them 284 if ( !empty( $dupe_names ) ) { 285 $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) ); 286 $notice = sprintf( __( 'Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %2$s. <a href="%1$s" class="button-secondary">Repair</a>', 'buddypress' ), $admin_url, '<strong>' . implode( '</strong>, <strong>', $dupe_names ) . '</strong>' ); 287 288 bp_core_add_admin_notice( $notice ); 289 } 162 290 } 163 291 -
trunk/bp-core/deprecated/1.7.php
r6612 r6695 117 117 118 118 /** 119 * Verify that some BP prerequisites are set up properly, and notify the admin if not120 *121 * On every Dashboard page, this function checks the following:122 * - that pretty permalinks are enabled123 * - that a BP-compatible theme is activated124 * - that every BP component that needs a WP page for a directory has one125 * - that no WP page has multiple BP components associated with it126 * The administrator will be shown a notice for each check that fails.127 *128 * @deprecated BuddyPress (1.7)129 * @package BuddyPress Core130 */131 function bp_core_activation_notice() {132 global $wp_rewrite, $wpdb;133 134 $bp = buddypress();135 136 // Only the super admin gets warnings137 if ( !bp_current_user_can( 'bp_moderate' ) )138 return;139 140 // On multisite installs, don't load on a non-root blog, unless do_network_admin is141 // overridden142 if ( is_multisite() && bp_core_do_network_admin() && !bp_is_root_blog() )143 return;144 145 // Don't show these messages during setup or upgrade146 if ( !empty( $bp->maintenance_mode ) )147 return;148 149 /**150 * Check to make sure that the blog setup routine has run. This can't happen during the151 * wizard because of the order which the components are loaded. We check for multisite here152 * on the off chance that someone has activated the blogs component and then disabled MS153 */154 if ( bp_is_active( 'blogs' ) ) {155 $count = $wpdb->get_var( "SELECT COUNT(*) FROM {$bp->blogs->table_name}" );156 157 if ( empty( $count ) ) {158 bp_blogs_record_existing_blogs();159 }160 }161 162 /**163 * Are pretty permalinks enabled?164 */165 if ( isset( $_POST['permalink_structure'] ) )166 return false;167 168 if ( empty( $wp_rewrite->permalink_structure ) ) {169 bp_core_add_admin_notice( sprintf( __( '<strong>BuddyPress is almost ready</strong>. You must <a href="%s">update your permalink structure</a> to something other than the default for it to work.', 'buddypress' ), admin_url( 'options-permalink.php' ) ) );170 }171 172 /**173 * Check for orphaned BP components (BP component is enabled, no WP page exists)174 */175 $orphaned_components = array();176 $wp_page_components = array();177 178 // Only components with 'has_directory' require a WP page to function179 foreach( array_keys( $bp->loaded_components ) as $component_id ) {180 if ( !empty( $bp->{$component_id}->has_directory ) ) {181 $wp_page_components[] = array(182 'id' => $component_id,183 'name' => isset( $bp->{$component_id}->name ) ? $bp->{$component_id}->name : ucwords( $bp->{$component_id}->id )184 );185 }186 }187 188 // Activate and Register are special cases. They are not components but they need WP pages.189 // If user registration is disabled, we can skip this step.190 if ( bp_get_signup_allowed() ) {191 $wp_page_components[] = array(192 'id' => 'activate',193 'name' => __( 'Activate', 'buddypress' )194 );195 196 $wp_page_components[] = array(197 'id' => 'register',198 'name' => __( 'Register', 'buddypress' )199 );200 }201 202 foreach( $wp_page_components as $component ) {203 if ( !isset( $bp->pages->{$component['id']} ) ) {204 $orphaned_components[] = $component['name'];205 }206 }207 208 // Special case: If the Forums component is orphaned, but the bbPress 1.x installation is209 // not correctly set up, don't show a nag. (In these cases, it's probably the case that the210 // user is using bbPress 2.x; see https://buddypress.trac.wordpress.org/ticket/4292211 if ( isset( $bp->forums->name ) && in_array( $bp->forums->name, $orphaned_components ) && !bp_forums_is_installed_correctly() ) {212 $forum_key = array_search( $bp->forums->name, $orphaned_components );213 unset( $orphaned_components[$forum_key] );214 $orphaned_components = array_values( $orphaned_components );215 }216 217 if ( !empty( $orphaned_components ) ) {218 $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) );219 $notice = sprintf( __( 'The following active BuddyPress Components do not have associated WordPress Pages: %2$s. <a href="%1$s" class="button-secondary">Repair</a>', 'buddypress' ), $admin_url, '<strong>' . implode( '</strong>, <strong>', $orphaned_components ) . '</strong>' );220 221 bp_core_add_admin_notice( $notice );222 }223 224 /**225 * BP components cannot share a single WP page. Check for duplicate assignments, and post226 * a message if found.227 */228 $dupe_names = array();229 $page_ids = (array)bp_core_get_directory_page_ids();230 $dupes = array_diff_assoc( $page_ids, array_unique( $page_ids ) );231 232 if ( !empty( $dupes ) ) {233 foreach( array_keys( $dupes ) as $dupe_component ) {234 $dupe_names[] = $bp->pages->{$dupe_component}->title;235 }236 237 // Make sure that there are no duplicate duplicates :)238 $dupe_names = array_unique( $dupe_names );239 }240 241 // If there are duplicates, post a message about them242 if ( !empty( $dupe_names ) ) {243 $admin_url = bp_get_admin_url( add_query_arg( array( 'page' => 'bp-page-settings' ), 'admin.php' ) );244 $notice = sprintf( __( 'Each BuddyPress Component needs its own WordPress page. The following WordPress Pages have more than one component associated with them: %2$s. <a href="%1$s" class="button-secondary">Repair</a>', 'buddypress' ), $admin_url, '<strong>' . implode( '</strong>, <strong>', $dupe_names ) . '</strong>' );245 246 bp_core_add_admin_notice( $notice );247 }248 }249 250 /**251 119 * This function was originally used to update pre-1.1 schemas, but that was 252 120 * before we had a legitimate update process.
Note: See TracChangeset
for help on using the changeset viewer.