/** * Handle saving of the BuddyPress slugs. * * @since 1.6.0 * @todo Use settings API */ function bp_core_admin_slugs_setup_handler() { if (isset($_POST['bp-admin-pages-submit'])) { if (!check_admin_referer('bp-admin-pages-setup')) { return false; } // Then, update the directory pages if (isset($_POST['bp_pages'])) { $directory_pages = array(); foreach ((array) $_POST['bp_pages'] as $key => $value) { if (!empty($value)) { $directory_pages[$key] = (int) $value; } } bp_core_update_directory_page_ids($directory_pages); } $base_url = bp_get_admin_url(add_query_arg(array('page' => 'bp-page-settings', 'updated' => 'true'), 'admin.php')); wp_redirect($base_url); } }
/** * Create WordPress pages to be used as BP component directories. */ function bp_core_create_root_component_page() { // Get BuddyPress $bp = buddypress(); $new_page_ids = array(); foreach ((array) $bp->add_root as $slug) { $new_page_ids[$slug] = wp_insert_post(array('comment_status' => 'closed', 'ping_status' => 'closed', 'post_title' => ucwords($slug), 'post_status' => 'publish', 'post_type' => 'page')); } $page_ids = array_merge((array) $new_page_ids, (array) bp_core_get_directory_page_ids('all')); bp_core_update_directory_page_ids($page_ids); }
/** * @ticket BP6280 */ public function test_inactive_components_should_be_removed_if_status_is_unspecified() { $old_page_ids = bp_core_get_directory_page_ids('all'); $page_ids = $old_page_ids; $page_ids['foo'] = 12345; bp_core_update_directory_page_ids($page_ids); $found = bp_core_get_directory_page_ids('active'); $this->assertFalse(isset($found['foo'])); }
/** * @group BP6244 * @group bp_core_admin_get_active_components_from_submitted_settings */ public function test_bp_core_admin_get_active_components_from_submitted_settings_should_keep_custom_component_directory_page() { $bp = buddypress(); $reset_active_components = $bp->active_components; // Create and activate the foo component $bp->foo = new BP_Component(); $bp->foo->id = 'foo'; $bp->foo->slug = 'foo'; $bp->foo->name = 'Foo'; $bp->active_components[$bp->foo->id] = 1; $new_page_ids = array($bp->foo->id => $this->factory->post->create(array('post_type' => 'page', 'post_title' => $bp->foo->name, 'post_name' => $bp->foo->slug))); $page_ids = array_merge($new_page_ids, (array) bp_core_get_directory_page_ids('all')); bp_core_update_directory_page_ids($page_ids); $bp->active_components = bp_core_admin_get_active_components_from_submitted_settings($reset_active_components); bp_core_add_page_mappings($bp->active_components); $this->assertContains($bp->foo->id, array_keys(bp_core_get_directory_page_ids('all'))); // Reset buddypress() vars $bp->active_components = $reset_active_components; }
/** * Handles plugin deactivation * * @uses bp_core_get_directory_page_ids() to get the BuddyPress component page ids * @uses buddydrive_get_slug() to get BuddyDrive slug * @uses wp_delete_post() to eventually delete the BuddyDrive page * @uses bp_core_update_directory_page_ids() to update the BuddyPres component pages ids */ function buddydrive_deactivation() { // Bail if config does not match what we need if (buddydrive::bail()) { return; } $directory_pages = bp_core_get_directory_page_ids(); $buddydrive_slug = buddydrive_get_slug(); if (!empty($directory_pages[$buddydrive_slug])) { // let's remove the page as the plugin is deactivated. $buddydrive_page_id = $directory_pages[$buddydrive_slug]; wp_delete_post($buddydrive_page_id, true); unset($directory_pages[$buddydrive_slug]); bp_core_update_directory_page_ids($directory_pages); } do_action('buddydrive_deactivation'); }