Skip to:
Content

BuddyPress.org

Ticket #5681: 5681.diff

File 5681.diff, 1.4 KB (added by Mamaduka, 12 years ago)
  • src/bp-core/bp-core-functions.php

    diff --git src/bp-core/bp-core-functions.php src/bp-core/bp-core-functions.php
    index 5b93f9c..1a82571 100644
    function bp_core_get_directory_page_ids() {  
    381381        if ( !empty( $page_ids ) && is_array( $page_ids ) ) {
    382382                foreach( (array) $page_ids as $component_name => $page_id ) {
    383383                        if ( empty( $component_name ) || empty( $page_id ) ) {
    384                                 unset( $page_ids[$component_name] );
     384                                unset( $page_ids[ $component_name ] );
     385                        }
     386
     387                        if ( ! bp_is_active( $component_name ) || 'trash' == get_post_status( $page_id ) ) {
     388                                unset( $page_ids[ $component_name ] );
    385389                        }
    386390                }
    387391        }
    function bp_do_register_theme_directory() {  
    706710        return apply_filters( 'bp_do_register_theme_directory', $register );
    707711}
    708712
     713/**
     714 * Handle for updating BP directory pages option when page is deleted.
     715 *
     716 * @since BuddyPress (2.2.0)
     717 *
     718 * @param int $post_id Post ID.
     719 */
     720function bp_core_on_directory_page_delete( $post_id ) {
     721        $page_ids = bp_core_get_directory_page_ids();
     722        $component_name = array_search( $post_id, $page_ids );
     723
     724        if ( ! empty( $component_name ) ) {
     725                unset( $page_ids[ $component_name ] );
     726        }
     727
     728        bp_core_update_directory_page_ids( $page_ids );
     729}
     730add_action( 'delete_post', 'bp_core_on_directory_page_delete' );
     731
    709732/** URI ***********************************************************************/
    710733
    711734/**