Changeset 9608
- Timestamp:
- 03/10/2015 03:23:36 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-core/admin/bp-core-admin-components.php
r9605 r9608 310 310 } 311 311 312 $current_components = buddypress()->active_components; 313 $packaged_components = array_flip( bp_core_get_packaged_component_ids() ); 314 $custom_active_components = array_diff_key( $current_components, $packaged_components ); 312 $current_components = buddypress()->active_components; 315 313 316 314 switch ( $current_action ) { … … 320 318 if ( ! isset( $submitted[ $retired_component ] ) ) { 321 319 unset( $current_components[ $retired_component ] ); 322 323 // Make sure custom components does not contain a retired component324 if ( isset( $custom_active_components[ $retired_component ] ) ) {325 unset( $custom_active_components[ $retired_component ] );326 }327 320 } 328 321 } … … 340 333 } 341 334 342 // Active components is the list of packaged and custom components 343 return array_merge( $components, $custom_active_components ); 335 return $components; 344 336 } 345 337 -
trunk/src/bp-core/bp-core-cache.php
r9601 r9608 70 70 } 71 71 72 $page_ids = bp_core_get_directory_page_ids( );72 $page_ids = bp_core_get_directory_page_ids( 'all' ); 73 73 74 74 if ( ! in_array( $post_id, (array) $page_ids ) ) { -
trunk/src/bp-core/bp-core-functions.php
r9559 r9608 419 419 * @since BuddyPress (1.5.0) 420 420 * 421 * @param string $status 'active' to return only pages associated with active components, 'all' to return all saved 422 * pages. When running save routines, use 'all' to avoid removing data related to inactive 423 * components. Default: 'active'. 421 424 * @return array|string An array of page IDs, keyed by component names, or an 422 * empty string if the list is not found.423 */ 424 function bp_core_get_directory_page_ids( ) {425 * empty string if the list is not found. 426 */ 427 function bp_core_get_directory_page_ids( $status = 'active' ) { 425 428 $page_ids = bp_get_option( 'bp-pages' ); 426 429 … … 437 440 } 438 441 439 if ( ! bp_is_active( $component_name ) || 'trash' == get_post_status( $page_id ) ) { 442 // Trashed pages should not appear in results. 443 if ( 'trash' == get_post_status( $page_id ) ) { 444 unset( $page_ids[ $component_name ] ); 445 446 } 447 448 // Remove inactive component pages, if required. 449 if ( 'active' === $status && ! bp_is_active( $component_name ) ) { 440 450 unset( $page_ids[ $component_name ] ); 441 451 } … … 549 559 } 550 560 551 $pages = bp_core_get_directory_page_ids( );561 $pages = bp_core_get_directory_page_ids( 'all' ); 552 562 553 563 // Delete any existing pages … … 640 650 } 641 651 642 $page_ids = bp_core_get_directory_page_ids( );652 $page_ids = bp_core_get_directory_page_ids( 'all' ); 643 653 $component_name = array_search( $post_id, $page_ids ); 644 654 … … 746 756 } 747 757 748 $page_ids = array_merge( (array) $new_page_ids, (array) bp_core_get_directory_page_ids( ) );758 $page_ids = array_merge( (array) $new_page_ids, (array) bp_core_get_directory_page_ids( 'all' ) ); 749 759 bp_core_update_directory_page_ids( $page_ids ); 750 760 } -
trunk/tests/phpunit/testcases/admin/functions.php
r9555 r9608 145 145 ) ) ); 146 146 147 $page_ids = array_merge( $new_page_ids, (array) bp_core_get_directory_page_ids( ) );147 $page_ids = array_merge( $new_page_ids, (array) bp_core_get_directory_page_ids( 'all' ) ); 148 148 bp_core_update_directory_page_ids( $page_ids ); 149 149 … … 151 151 bp_core_add_page_mappings( $bp->active_components ); 152 152 153 $this->assertContains( $bp->foo->id, array_keys( bp_core_get_directory_page_ids( ) ) );153 $this->assertContains( $bp->foo->id, array_keys( bp_core_get_directory_page_ids( 'all' ) ) ); 154 154 155 155 // Reset buddypress() vars -
trunk/tests/phpunit/testcases/core/functions.php
r9509 r9608 450 450 451 451 $this->assertFalse( wp_cache_get( 'directory_pages', 'bp' ) ); 452 }453 454 /**455 * @group bp_core_get_directory_page_ids456 */457 public function test_bp_core_get_directory_page_ids_on_directory_page_to_trash() {458 $old_page_ids = bp_core_get_directory_page_ids();459 460 // Grab the and remove the first page.461 foreach ( $old_page_ids as $component => $page_id ) {462 $p = $page_id;463 unset( $old_page_ids[ $component ] );464 break;465 }466 467 // Move page to trash.468 wp_delete_post( $p, false );469 470 $new_page_ids = bp_core_get_directory_page_ids();471 472 $this->assertEquals( $old_page_ids, $new_page_ids );473 }474 475 /**476 * @group bp_core_get_directory_page_ids477 */478 public function test_bp_core_get_directory_page_ids_on_directory_page_delete() {479 $old_page_ids = bp_core_get_directory_page_ids();480 481 // Grab the and remove the first page.482 foreach ( $old_page_ids as $component => $page_id ) {483 $p = $page_id;484 unset( $old_page_ids[ $component ] );485 break;486 }487 488 // Force delete page.489 wp_delete_post( $p, true );490 491 $new_page_ids = bp_core_get_directory_page_ids();492 493 $this->assertEquals( $old_page_ids, $new_page_ids );494 }495 496 /**497 * @group bp_core_get_directory_page_ids498 */499 public function test_bp_core_get_directory_page_ids_on_non_directory_page_delete() {500 $old_page_ids = bp_core_get_directory_page_ids();501 502 $p = $this->factory->post->create( array(503 'post_status' => 'publish',504 'post_type' => 'page',505 ) );506 507 // Force delete page.508 wp_delete_post( $p, true );509 510 $new_page_ids = bp_core_get_directory_page_ids();511 512 $this->assertEquals( $old_page_ids, $new_page_ids );513 }514 515 /**516 * @group bp_core_get_directory_page_ids517 */518 public function test_bp_core_get_directory_page_ids_non_active_component() {519 $old_page_ids = bp_core_get_directory_page_ids();520 $bp = buddypress();521 522 // Grab the and remove the first page.523 foreach ( $old_page_ids as $component => $page_id ) {524 $p = $page_id;525 $c = $component;526 unset( $old_page_ids[ $component ] );527 break;528 }529 530 // Deactivate component.531 unset( $bp->active_components[ $c ] );532 533 $new_page_ids = bp_core_get_directory_page_ids();534 535 // Restore components.536 $bp->active_components[ $c ] = 1;537 538 $this->assertEquals( $old_page_ids, $new_page_ids );539 }540 541 /**542 * @group bp_core_get_directory_page_ids543 */544 public function test_bp_core_get_directory_page_ids_should_contain_register_and_activet_pages_when_registration_is_open() {545 add_filter( 'bp_get_signup_allowed', '__return_true', 999 );546 547 $ac = buddypress()->active_components;548 bp_core_add_page_mappings( array_keys( $ac ) );549 550 $page_ids = bp_core_get_directory_page_ids();551 $page_names = array_keys( $page_ids );552 553 $this->assertContains( 'register', $page_names );554 $this->assertContains( 'activate', $page_names );555 556 remove_filter( 'bp_get_signup_allowed', '__return_true', 999 );557 }558 559 /**560 * @group bp_core_get_directory_page_ids561 */562 public function test_bp_core_get_directory_page_ids_should_not_contain_register_and_activet_pages_when_registration_is_closed() {563 564 // Make sure the pages exist, to verify they're filtered out.565 add_filter( 'bp_get_signup_allowed', '__return_true', 999 );566 $ac = buddypress()->active_components;567 bp_core_add_page_mappings( array_keys( $ac ) );568 remove_filter( 'bp_get_signup_allowed', '__return_true', 999 );569 570 // Get page ids571 $page_ids = bp_core_get_directory_page_ids();572 573 // Need to delete these pages as previously created.574 wp_delete_post( $page_ids['register'], true );575 wp_delete_post( $page_ids['activate'], true );576 577 add_filter( 'bp_get_signup_allowed', '__return_false', 999 );578 bp_core_add_page_mappings( array_keys( $ac ) );579 $page_ids = bp_core_get_directory_page_ids();580 remove_filter( 'bp_get_signup_allowed', '__return_false', 999 );581 582 $page_names = array_keys( $page_ids );583 584 $this->assertNotContains( 'register', $page_names );585 $this->assertNotContains( 'activate', $page_names );586 }587 588 /**589 * @group bp_core_get_directory_pages590 */591 public function test_bp_core_get_directory_pages_register_activate_page_created_signups_allowed() {592 add_filter( 'bp_get_signup_allowed', '__return_true', 999 );593 594 $ac = buddypress()->active_components;595 bp_core_add_page_mappings( array_keys( $ac ) );596 $directory_pages = bp_core_get_directory_pages();597 598 remove_filter( 'bp_get_signup_allowed', '__return_true', 999 );599 600 $this->assertTrue( isset( $directory_pages->register ) );601 $this->assertTrue( isset( $directory_pages->activate ) );602 603 $r = get_post( $directory_pages->register->id );604 $this->assertTrue( 'publish' == $r->post_status );605 606 $a = get_post( $directory_pages->activate->id );607 $this->assertTrue( 'publish' == $a->post_status );608 }609 610 /**611 * @group bp_core_get_directory_pages612 */613 public function test_bp_core_get_directory_pages_register_activate_page_notcreated_signups_allowed() {614 add_filter( 'bp_get_signup_allowed', '__return_false', 999 );615 616 $ac = buddypress()->active_components;617 bp_core_add_page_mappings( array_keys( $ac ) );618 619 remove_filter( 'bp_get_signup_allowed', '__return_false', 999 );620 621 add_filter( 'bp_get_signup_allowed', '__return_true', 999 );622 623 $directory_pages = bp_core_get_directory_pages();624 625 remove_filter( 'bp_get_signup_allowed', '__return_true', 999 );626 627 $this->assertFalse( isset( $directory_pages->register ) );628 $this->assertFalse( isset( $directory_pages->activate ) );629 }630 631 /**632 * @group bp_core_get_directory_pages633 */634 public function test_bp_core_get_directory_pages_register_activate_page_created_signups_notallowed() {635 add_filter( 'bp_get_signup_allowed', '__return_true', 999 );636 637 $ac = buddypress()->active_components;638 bp_core_add_page_mappings( array_keys( $ac ) );639 640 remove_filter( 'bp_get_signup_allowed', '__return_true', 999 );641 642 add_filter( 'bp_get_signup_allowed', '__return_false', 999 );643 644 $directory_pages = bp_core_get_directory_pages();645 646 remove_filter( 'bp_get_signup_allowed', '__return_false', 999 );647 648 $this->assertTrue( isset( $directory_pages->register ) );649 $this->assertTrue( isset( $directory_pages->activate ) );650 651 $r = get_post( $directory_pages->register->id );652 $this->assertTrue( 'publish' == $r->post_status );653 654 $a = get_post( $directory_pages->activate->id );655 $this->assertTrue( 'publish' == $a->post_status );656 }657 658 /**659 * @group bp_core_get_directory_pages660 */661 public function test_bp_core_get_directory_pages_register_activate_page_notcreated_signups_notallowed() {662 663 add_filter( 'bp_get_signup_allowed', '__return_false', 999 );664 665 $ac = buddypress()->active_components;666 bp_core_add_page_mappings( array_keys( $ac ) );667 $directory_pages = bp_core_get_directory_pages();668 669 remove_filter( 'bp_get_signup_allowed', '__return_false', 999 );670 671 $this->assertFalse( isset( $directory_pages->register ) );672 $this->assertFalse( isset( $directory_pages->activate ) );673 }674 675 /**676 * @group bp_core_get_directory_pages677 */678 public function test_bp_core_get_directory_pages_pages_settings_update() {679 // Set the cache680 $pages = bp_core_get_directory_pages();681 682 // Mess with it but put it back683 $v = bp_get_option( 'bp-pages' );684 bp_update_option( 'bp-pages', 'foo' );685 686 $this->assertFalse( wp_cache_get( 'directory_pages', 'bp' ) );687 688 bp_update_option( 'bp-pages', $v );689 }690 691 /**692 * @group bp_core_get_directory_pages693 */694 public function test_bp_core_get_directory_pages_multisite_delete_post_with_same_bp_page_id() {695 if ( ! is_multisite() ) {696 return;697 }698 699 $dir_pages = bp_core_get_directory_pages();700 701 // create a blog702 $u = $this->factory->user->create();703 $b1 = $this->factory->blog->create( array( 'user_id' => $u ) );704 705 // switch to blog and create some dummy posts until we reach a post ID that706 // matches our BP activity page ID707 switch_to_blog( $b1 );708 $p = $this->factory->post->create();709 while( $p <= $dir_pages->activity->id ) {710 $p = $this->factory->post->create();711 }712 713 // delete the post that matches the BP activity page ID on this sub-site714 wp_delete_post( $dir_pages->activity->id, true );715 716 // restore blog717 restore_current_blog();718 719 // refetch BP directory pages720 $dir_pages = bp_core_get_directory_pages();721 722 // Now verify that our BP activity page was not wiped out723 $this->assertNotEmpty( $dir_pages->activity );724 452 } 725 453
Note: See TracChangeset
for help on using the changeset viewer.