Changeset 6770
- Timestamp:
- 02/06/2013 10:10:49 PM (12 years ago)
- Location:
- trunk/bp-core
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-core/admin/bp-core-components.php
r6581 r6770 301 301 302 302 bp_core_install( $bp->active_components ); 303 303 bp_core_add_page_mappings( $bp->active_components ); 304 304 bp_update_option( 'bp-active-components', $bp->active_components ); 305 305 } -
trunk/bp-core/bp-core-functions.php
r6579 r6770 173 173 174 174 return apply_filters( 'bp_core_get_directory_pages', $pages ); 175 } 176 177 /** 178 * Add the pages for the component mapping. These are most often used by components with directories (e.g. groups, members). 179 * 180 * @param array $default_components Optional components to create pages for 181 * @param string $existing 'delete' if you want to delete existing page 182 * mappings and replace with new ones. Otherwise existing page mappings 183 * are kept, and the gaps filled in with new pages 184 * @since BuddyPress (1.7) 185 */ 186 function bp_core_add_page_mappings( $components, $existing = 'keep' ) { 187 188 // Make sure that the pages are created on the root blog no matter which Dashboard the setup is being run on 189 if ( ! bp_is_root_blog() ) 190 switch_to_blog( bp_get_root_blog_id() ); 191 192 $pages = bp_core_get_directory_page_ids(); 193 194 // Delete any existing pages 195 if ( 'delete' == $existing ) { 196 foreach ( (array) $pages as $page_id ) { 197 wp_delete_post( $page_id, true ); 198 } 199 200 $pages = array(); 201 } 202 203 $page_titles = array( 204 'activity' => _x( 'Activity', 'Page title for the Activity directory.', 'buddypress' ), 205 'groups' => _x( 'Groups', 'Page title for the Groups directory.', 'buddypress' ), 206 'sites' => _x( 'Sites', 'Page title for the Sites directory.', 'buddypress' ), 207 'activate' => _x( 'Activate', 'Page title for the user account activation screen.', 'buddypress' ), 208 'members' => _x( 'Members', 'Page title for the Members directory.', 'buddypress' ), 209 'register' => _x( 'Register', 'Page title for the user registration screen.', 'buddypress' ), 210 ); 211 212 $pages_to_create = array(); 213 foreach ( array_keys( $components ) as $component_name ) { 214 if ( ! isset( $pages[ $component_name ] ) && isset( $page_titles[ $component_name ] ) ) { 215 $pages_to_create[ $component_name ] = $page_titles[ $component_name ]; 216 } 217 } 218 219 // Register and Activate are not components, but need pages when 220 // registration is enabled 221 if ( bp_get_signup_allowed() ) { 222 foreach ( array( 'register', 'activate' ) as $slug ) { 223 if ( ! isset( $pages[ $slug ] ) ) { 224 $pages_to_create[ $slug ] = $page_titles[ $slug ]; 225 } 226 } 227 } 228 229 // No need for a Sites directory unless we're on multisite 230 if ( ! is_multisite() && isset( $pages_to_create['sites'] ) ) { 231 unset( $pages_to_create['sites'] ); 232 } 233 234 // Members must always have a page, no matter what 235 if ( ! isset( $pages['members'] ) && ! isset( $pages_to_create['members'] ) ) { 236 $pages_to_create['members'] = $page_titles['members']; 237 } 238 239 // Create the pages 240 foreach ( $pages_to_create as $component_name => $page_name ) { 241 $pages[ $component_name ] = wp_insert_post( array( 242 'comment_status' => 'closed', 243 'ping_status' => 'closed', 244 'post_status' => 'publish', 245 'post_title' => $page_name, 246 'post_type' => 'page', 247 ) ); 248 } 249 250 // Save the page mapping 251 bp_update_option( 'bp-pages', $pages ); 252 253 // If we had to switch_to_blog, go back to the original site. 254 if ( ! bp_is_root_blog() ) 255 restore_current_blog(); 175 256 } 176 257 -
trunk/bp-core/bp-core-update.php
r6730 r6770 186 186 bp_core_install( $default_components ); 187 187 bp_update_option( 'bp-active-components', $default_components ); 188 bp_ updater_add_page_mappings( $default_components);188 bp_core_add_page_mappings( $default_components, 'delete' ); 189 189 190 190 // Upgrades … … 197 197 if ( $raw_db_version < 1801 ) { 198 198 bp_update_to_1_5(); 199 bp_ updater_add_page_mappings( $default_components);199 bp_core_add_page_mappings( $default_components, 'delete' ); 200 200 } 201 201 … … 249 249 250 250 /** 251 * Add the pages for the component mapping. These are most often used by components with directories (e.g. groups, members).252 *253 * @param array $default_components Optional components to create pages for254 * @since BuddyPress (1.7)255 */256 function bp_updater_add_page_mappings( $default_components ) {257 258 // Make sure that the pages are created on the root blog no matter which Dashboard the setup is being run on259 if ( ! bp_is_root_blog() )260 switch_to_blog( bp_get_root_blog_id() );261 262 // Delete any existing pages263 $pages = bp_core_get_directory_page_ids();264 foreach ( (array) $pages as $page_id )265 wp_delete_post( $page_id, true );266 267 $pages = array();268 foreach ( array_keys( $default_components ) as $component_name ) {269 if ( $component_name == 'activity' ) {270 $pages[$component_name] = _x( 'Activity', 'Page title for the Activity directory.', 'buddypress' );271 272 } elseif ( $component_name == 'groups') {273 $pages[$component_name] = _x( 'Groups', 'Page title for the Groups directory.', 'buddypress' );274 275 // Blogs component only needs a directory page when multisite is enabled276 } elseif ( $component_name == 'blogs' && is_multisite() ) {277 $pages[$component_name] = _x( 'Sites', 'Page title for the Sites directory.', 'buddypress' );278 }279 }280 281 // Mandatory components/pages282 $pages['activate'] = _x( 'Activate', 'Page title for the user account activation screen.', 'buddypress' );283 $pages['members'] = _x( 'Members', 'Page title for the Members directory.', 'buddypress' );284 $pages['register'] = _x( 'Register', 'Page title for the user registration screen.', 'buddypress' );285 286 // Create the pages287 foreach ( $pages as $component_name => $page_name ) {288 $pages[$component_name] = wp_insert_post( array(289 'comment_status' => 'closed',290 'ping_status' => 'closed',291 'post_status' => 'publish',292 'post_title' => $page_name,293 'post_type' => 'page',294 ) );295 }296 297 // Save the page mapping298 bp_update_option( 'bp-pages', $pages );299 300 // If we had to switch_to_blog, go back to the original site.301 if ( ! bp_is_root_blog() )302 restore_current_blog();303 }304 305 /**306 251 * Redirect user to BuddyPress's What's New page on activation 307 252 *
Note: See TracChangeset
for help on using the changeset viewer.