Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/18/2011 03:23:04 AM (13 years ago)
Author:
djpaul
Message:

Move root component page creation code out of deprecated file.
Also tidy up of a teeny bit of PHPDoc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-functions.php

    r3987 r4053  
    1616 * Fetches BP pages from the meta table, depending on setup
    1717 *
    18  * @package BuddyPress Core Core
     18 * @package BuddyPress Core
    1919 */
    2020function bp_core_get_page_meta() {
     
    3030 * Stores BP pages in the meta table, depending on setup
    3131 *
    32  * @package BuddyPress Core Core
     32 * @package BuddyPress Core
    3333 */
    3434function bp_core_update_page_meta( $page_ids ) {
     
    722722}
    723723
     724/**
     725 * This function originally let plugins add support for pages in the root of the install.
     726 * These root level pages are now handled by actual WordPress pages and this function is now
     727 * a convenience for compatibility with the new method.
     728 *
     729 * @global $bp BuddyPress global settings
     730 * @param $slug str The slug of the component
     731 */
     732function bp_core_add_root_component( $slug ) {
     733    global $bp;
     734
     735    if ( empty( $bp->pages ) )
     736        $bp->pages = bp_core_get_page_names();
     737
     738    $match = false;
     739
     740    // Check if the slug is registered in the $bp->pages global
     741    foreach ( (array)$bp->pages as $key => $page ) {
     742        if ( $key == $slug || $page->slug == $slug )
     743            $match = true;
     744    }
     745
     746    // If there was no match, add a page for this root component
     747    if ( empty( $match ) ) {
     748        $bp->add_root[] = $slug;
     749        add_action( 'bp_init', 'bp_core_create_root_component_page' );
     750    }
     751}
     752
     753function bp_core_create_root_component_page() {
     754    global $bp;
     755
     756    $new_page_ids = array();
     757
     758    foreach ( (array)$bp->add_root as $slug )
     759        $new_page_ids[$slug] = wp_insert_post( array( 'comment_status' => 'closed', 'ping_status' => 'closed', 'post_title' => ucwords( $slug ), 'post_status' => 'publish', 'post_type' => 'page' ) );
     760
     761    $page_ids = array_merge( (array) $new_page_ids, (array) bp_core_get_page_meta() );
     762    bp_core_update_page_meta( $page_ids );
     763}
    724764?>
Note: See TracChangeset for help on using the changeset viewer.