public function profile_tab_gifts() { global $bp; bp_core_new_nav_item(array('parent_url' => bp_loggedin_user_domain() . '/gifts/', 'parent_slug' => $bp->profile->slug, 'default_subnav_slug' => 'send_gift', 'show_for_displayed_user' => false, 'name' => 'Gifts', 'slug' => 'gifts', 'screen_function' => array($this, 'send_gift_posts'), 'position' => 40)); bp_core_new_subnav_item(array('name' => 'Send Gift', 'slug' => 'send_gift', 'show_for_displayed_user' => false, 'parent_url' => bp_loggedin_user_domain() . '/gifts/', 'parent_slug' => $bp->bp_nav['gifts']['slug'], 'position' => 10, 'screen_function' => array($this, 'send_gift_posts'))); bp_core_new_subnav_item(array('name' => 'Received Gift', 'slug' => 'received_gift', 'parent_url' => bp_loggedin_user_domain() . '/gifts/', 'parent_slug' => $bp->bp_nav['gifts']['slug'], 'position' => 10, 'screen_function' => array($this, 'received_gifts_posts'))); }
function messages_action_view_message() { global $thread_id, $bp; if (!bp_is_messages_component() || !bp_is_current_action('view')) { return false; } $thread_id = (int) bp_action_variable(0); if (!$thread_id || !messages_is_valid_thread($thread_id) || !messages_check_thread_access($thread_id) && !is_super_admin()) { bp_core_redirect(bp_displayed_user_domain() . bp_get_messages_slug()); } // Check if a new reply has been submitted if (isset($_POST['send'])) { // Check the nonce check_admin_referer('messages_send_message', 'send_message_nonce'); // Send the reply if (messages_new_message(array('thread_id' => $thread_id, 'subject' => $_POST['subject'], 'content' => $_POST['content']))) { bp_core_add_message(__('Your reply was sent successfully', 'buddypress')); } else { bp_core_add_message(__('There was a problem sending your reply, please try again', 'buddypress'), 'error'); } bp_core_redirect(bp_displayed_user_domain() . bp_get_messages_slug() . '/view/' . $thread_id . '/'); } // Mark message read messages_mark_thread_read($thread_id); // Decrease the unread count in the nav before it's rendered $name = sprintf(__('Messages <span>%s</span>', 'buddypress'), bp_get_total_unread_messages_count()); $bp->bp_nav[$bp->messages->slug]['name'] = $name; do_action('messages_action_view_message'); bp_core_new_subnav_item(array('name' => sprintf(__('From: %s', 'buddypress'), BP_Messages_Thread::get_last_sender($thread_id)), 'slug' => 'view', 'parent_url' => trailingslashit(bp_displayed_user_domain() . bp_get_messages_slug()), 'parent_slug' => bp_get_messages_slug(), 'screen_function' => true, 'position' => 40, 'user_has_access' => bp_is_my_profile(), 'link' => bp_displayed_user_domain() . bp_get_messages_slug() . '/view/' . (int) $thread_id)); bp_core_load_template(apply_filters('messages_template_view_message', 'members/single/home')); }
/** * Setup profile / BuddyBar navigation. * * This function was moved from {@link BP_Follow_Component} in v1.3.0 due * to the users module being toggleable. * * @since 1.3.0 */ function bp_follow_user_setup_nav($main_nav = array(), $sub_nav = array()) { global $bp; // If we're in the admin area and we're using the WP toolbar, we don't need // to run the rest of this method if (defined('WP_NETWORK_ADMIN') && bp_use_wp_admin_bar()) { return; } // Need to change the user ID, so if we're not on a member page, $counts variable is still calculated $user_id = bp_is_user() ? bp_displayed_user_id() : bp_loggedin_user_id(); $counts = bp_follow_total_follow_counts(array('user_id' => $user_id)); // BuddyBar compatibility $domain = bp_displayed_user_domain() ? bp_displayed_user_domain() : bp_loggedin_user_domain(); /** FOLLOWERS NAV ************************************************/ bp_core_new_nav_item(array('name' => sprintf(__('Following <span>%d</span>', 'bp-follow'), $counts['following']), 'slug' => $bp->follow->following->slug, 'position' => $bp->follow->params['adminbar_myaccount_order'], 'screen_function' => 'bp_follow_screen_following', 'default_subnav_slug' => 'following', 'item_css_id' => 'members-following')); /** FOLLOWING NAV ************************************************/ bp_core_new_nav_item(array('name' => sprintf(__('Followers <span>%d</span>', 'bp-follow'), $counts['followers']), 'slug' => $bp->follow->followers->slug, 'position' => apply_filters('bp_follow_followers_nav_position', 62), 'screen_function' => 'bp_follow_screen_followers', 'default_subnav_slug' => 'followers', 'item_css_id' => 'members-followers')); /** ACTIVITY SUBNAV **********************************************/ // Add activity sub nav item if (bp_is_active('activity') && apply_filters('bp_follow_show_activity_subnav', true)) { bp_core_new_subnav_item(array('name' => _x('Following', 'Activity subnav tab', 'bp-follow'), 'slug' => constant('BP_FOLLOWING_SLUG'), 'parent_url' => trailingslashit($domain . bp_get_activity_slug()), 'parent_slug' => bp_get_activity_slug(), 'screen_function' => 'bp_follow_screen_activity_following', 'position' => 21, 'item_css_id' => 'activity-following')); } // BuddyBar compatibility add_action('bp_adminbar_menus', 'bp_follow_group_buddybar_items'); }
function bp_profile_header_setup() { global $bp, $user_identity; $display_user_link = $bp->displayed_user->domain; $user_link = $display_user_link . $bp->settings->slug . '/'; bp_core_new_subnav_item(array('name' => __('Flickr Youtube', TEMPLATE_DOMAIN), 'slug' => 'flickr-youtube', 'parent_url' => $user_link, 'parent_slug' => $bp->settings->slug, 'screen_function' => 'bp_profile_social', 'position' => 10)); }
/** * bp_em_setup_nav() * * Sets up the user profile navigation items for the component. This adds the top level nav * item and all the sub level nav items to the navigation array. This is then * rendered in the template. */ function bp_em_setup_nav() { global $bp; $count = 0; /* Add 'Events' to the main user profile navigation */ bp_core_new_nav_item(array('name' => __('Events', 'bp-em'), 'slug' => $bp->events->slug, 'position' => 80, 'screen_function' => bp_is_my_profile() ? 'bp_em_my_events' : 'bp_em_events', 'default_subnav_slug' => bp_is_my_profile() ? 'my-events' : '')); $em_link = $bp->loggedin_user->domain . $bp->events->slug . '/'; /* Create two sub nav items for this component */ bp_core_new_subnav_item(array('name' => __('My Profile', 'dbem'), 'slug' => 'profile', 'parent_slug' => $bp->events->slug, 'parent_url' => $em_link, 'screen_function' => 'bp_em_events', 'position' => 10, 'user_has_access' => bp_is_my_profile())); bp_core_new_subnav_item(array('name' => __('Events I\'m Attending', 'dbem'), 'slug' => 'attending', 'parent_slug' => $bp->events->slug, 'parent_url' => $em_link, 'screen_function' => 'bp_em_attending', 'position' => 20, 'user_has_access' => bp_is_my_profile())); bp_core_new_subnav_item(array('name' => __('My Events', 'dbem'), 'slug' => 'my-events', 'parent_slug' => $bp->events->slug, 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_events', 'position' => 30, 'user_has_access' => bp_is_my_profile())); bp_core_new_subnav_item(array('name' => __('My Locations', 'dbem'), 'slug' => 'my-locations', 'parent_slug' => $bp->events->slug, 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_locations', 'position' => 40, 'user_has_access' => bp_is_my_profile())); bp_core_new_subnav_item(array('name' => __('My Event Bookings', 'dbem'), 'slug' => 'my-bookings', 'parent_slug' => $bp->events->slug, 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_bookings', 'position' => 50, 'user_has_access' => bp_is_my_profile())); /* Add a nav item for this component under the settings nav item. */ bp_core_new_subnav_item(array('name' => __('Events', 'dbem'), 'slug' => 'group-events', 'parent_slug' => $bp->groups->slug, 'parent_url' => $bp->loggedin_user->domain . $bp->groups->slug . '/', 'screen_function' => 'bp_em_my_group_events', 'position' => 60, 'user_has_access' => bp_is_my_profile())); /* Add a nav item for this component under the settings nav item. */ bp_core_new_subnav_item(array('name' => __('Events', 'dbem'), 'slug' => 'events-settings', 'parent_slug' => $bp->settings->slug, 'parent_url' => $bp->loggedin_user->domain . $bp->settings->slug . '/', 'screen_function' => 'bp_em_screen_settings_menu', 'position' => 40, 'user_has_access' => bp_is_my_profile())); /* Create two sub nav items for this component */ $group_link = $bp->root_domain . '/' . $bp->groups->slug . '/' . $bp->groups->current_group->slug . '/'; if ($bp->current_component == 'groups') { $count = EM_Events::count(array('group' => $bp->groups->current_group->id)); if (empty($count)) { $count = 0; } } bp_core_new_subnav_item(array('name' => sprintf(__('Events (%s)', 'dbem'), $count), 'slug' => 'events', 'parent_url' => $group_link, 'parent_slug' => $bp->groups->slug, 'screen_function' => 'bp_em_group_events', 'position' => 50, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'forums')); }
function bp_content_setup_nav() { global $bp; bp_core_new_nav_item(array('name' => __('My Posts', 'buddypress'), 'slug' => 'my-posts', 'screen_function' => 'my_posts_screen_link', 'position' => 40, 'default_subnav_slug' => 'my-posts-subnav')); bp_core_new_subnav_item(array('name' => __('', 'buddypress'), 'slug' => 'my-posts', 'parent_url' => trailingslashit(bp_loggedin_user_domain() . 'main-tab'), 'parent_slug' => 'my-posts', 'screen_function' => 'my_posts_screen_link', 'position' => 10)); do_action('bp_content_setup_nav'); }
public static function bp_page_nav() { global $bp; global $fitbit_php; if (!is_user_logged_in() || !is_object($fitbit_php)) { return ''; } $user_domain = bp_displayed_user_domain() ? bp_displayed_user_domain() : bp_loggedin_user_domain(); $profile_link = trailingslashit($user_domain . $bp->profile->slug); bp_core_new_subnav_item(array('name' => FITPRESS_TAB_NAME, 'slug' => 'fitpress', 'parent_url' => $profile_link, 'parent_slug' => $bp->profile->slug, 'screen_function' => array('FitPress_BuddyPress', 'page_screen'), 'position' => 20, 'user_has_access' => current_user_can('edit_users'))); // $fitbit_php->resetSession(); // var_dump($fitbit_php); $user_domain = bp_displayed_user_domain() ? bp_displayed_user_domain() : bp_loggedin_user_domain(); $profile_link = trailingslashit($user_domain . $bp->profile->slug); // var_dump($fitbit_php->sessionStatus()); // wp_die(); if (0 != $fitbit_php->sessionStatus() || 'authorize' == $_GET['FitPress']) { $fitbit_php->initSession($profile_link . '/fitpress/'); $user_id = get_current_user_id(); $new_value = $fitbit_php->getOAuthToken(); // will return false if the previous value is the same as $new_value update_user_meta($user_id, 'fitpress_fitbit_token', $new_value); // so check and make sure the stored value matches $new_value if (get_user_meta($user_id, 'fitpress_fitbit_token', true) != $new_value) { wp_die('An error occurred'); } $new_value = $fitbit_php->getOAuthSecret(); // will return false if the previous value is the same as $new_value update_user_meta($user_id, 'fitpress_fitbit_secret', $new_value); // so check and make sure the stored value matches $new_value if (get_user_meta($user_id, 'fitpress_fitbit_secret', true) != $new_value) { wp_die('An error occurred'); } } }
function ec_bp_setup_nav() { global $bp; $events_link = $bp->displayed_user->domain . 'eventos/'; bp_core_new_nav_item(array('name' => 'Eventos', 'slug' => 'eventos', 'screen_function' => 'ec_show_events_list', 'position' => 0)); bp_core_new_subnav_item(array('name' => 'Eventos', 'slug' => 'mis-eventos', 'parent_url' => $events_link, 'parent_slug' => 'eventos', 'screen_function' => 'ec_show_events_list', 'position' => 10)); bp_core_new_subnav_item(array('name' => 'Calendario', 'slug' => 'mi-calendario', 'parent_url' => $events_link, 'parent_slug' => 'eventos', 'screen_function' => 'ec_show_events_calendar', 'position' => 20)); bp_core_new_subnav_item(array('name' => 'Crear Evento', 'slug' => 'evento_nuevo', 'parent_url' => $events_link, 'parent_slug' => 'eventos', 'screen_function' => 'ec_show_events_editor', 'user_has_access' => bp_is_my_profile(), 'position' => 30)); }
function add_videos_subnav_tab() { global $bp; bp_core_new_subnav_item(array('name' => 'Posts', 'slug' => 'posts', 'parent_url' => trailingslashit(bp_loggedin_user_domain() . 'favorites'), 'parent_slug' => 'favorites', 'screen_function' => 'profile_screen_posts', 'position' => 10)); bp_core_new_subnav_item(array('name' => 'Articles', 'slug' => 'articles', 'parent_url' => trailingslashit(bp_loggedin_user_domain() . 'favorites'), 'parent_slug' => 'favorites', 'screen_function' => 'profile_screen_articles', 'position' => 20)); $bp->bp_nav['profile']['name'] = 'About Me'; $bp->bp_nav['buddyblog']['name'] = 'Published Articles'; $bp->bp_nav['friends']['name'] = 'Soul Family'; $bp->bp_nav['friends']['position'] = 20; }
/** * Build two sub menu items, the first is showing by default * @author Nacho Abejaro */ function bp_profile_submenu_posts() { global $bp; $publishCount = get_user_posts_count('publish'); $pendingCount = get_user_posts_count('pending'); $draftCount = get_user_posts_count('draft'); bp_core_new_subnav_item(array('name' => __('Published', 'agora-functions') . '<span>' . $publishCount . '</span>', 'slug' => 'mypublished', 'parent_url' => bp_displayed_user_domain() . $bp->bp_nav['myposts']['slug'] . '/', 'parent_slug' => $bp->bp_nav['myposts']['slug'], 'position' => 10, 'screen_function' => 'mb_author_posts')); bp_core_new_subnav_item(array('name' => __('Pending Review', 'agora-functions') . '<span>' . $pendingCount . '</span>', 'slug' => 'myunder-review', 'parent_url' => bp_displayed_user_domain() . $bp->bp_nav['myposts']['slug'] . '/', 'parent_slug' => $bp->bp_nav['myposts']['slug'], 'position' => 20, 'screen_function' => 'mb_author_pending')); bp_core_new_subnav_item(array('name' => __('Drafts', 'agora-functions') . '<span>' . $draftCount . '</span>', 'slug' => 'mydrafts', 'parent_url' => bp_displayed_user_domain() . $bp->bp_nav['myposts']['slug'] . '/', 'parent_slug' => $bp->bp_nav['myposts']['slug'], 'position' => 30, 'screen_function' => 'mb_author_drafts')); }
/** * set_nav() * * Sets up the component navigation */ function set_nav() { global $bp; if (!$bp->groups->current_group || !$this->courseware_status($bp->groups->current_group->id)) { return; } $group_permalink = bp_get_group_permalink($bp->groups->current_group); bp_core_new_subnav_item(array('name' => __('Courseware', 'bpsp'), 'slug' => $bp->courseware->slug, 'parent_url' => $group_permalink, 'parent_slug' => $bp->groups->current_group->slug, 'screen_function' => array(&$this, 'screen_handler'), 'position' => 35, 'user_has_access' => $bp->groups->current_group->user_has_access, 'item_css_id' => 'courseware-group')); $this->nav_options[__('Home', 'bpsp')] = $group_permalink . $bp->courseware->slug; do_action('courseware_group_set_nav'); }
/** * Add albums page for network albums (grouped) */ function buddystream_profile_navigation() { global $bp; if (get_site_option('buddystream_social_albums') == "on") { if (get_site_option('buddystream_social_albums_profile_navigation') == "on") { bp_core_new_subnav_item(array('name' => __('Social albums', 'buddystream_lang'), 'slug' => 'social-album', 'parent_url' => $bp->displayed_user->domain . $bp->profile->slug . '/', 'parent_slug' => $bp->profile->slug, 'screen_function' => 'buddystream_default_album', 'position' => 80)); } else { bp_core_new_nav_item(array('name' => __('Social albums', 'buddystream_lang'), 'slug' => 'social-album', 'position' => 12, 'default_subnav_slug' => 'albums', 'screen_function' => 'buddystream_default_album')); } } }
function add_bp_profile_entry() { global $bp; bp_core_new_nav_item(array('name' => __('Events', Eab_EventsHub::TEXT_DOMAIN), 'slug' => 'my-events', 'show_for_displayed_user' => true, 'default_subnav_slug' => $this->_check_permissions() ? 'organized' : 'attending', 'screen_function' => '__return_false')); if ($this->_check_permissions()) { bp_core_new_subnav_item(array('name' => __('Organized', Eab_EventsHub::TEXT_DOMAIN), 'slug' => 'organized', 'parent_url' => $bp->displayed_user->domain . 'my-events' . '/', 'parent_slug' => 'my-events', 'screen_function' => array($this, 'bind_bp_organized_page'))); } bp_core_new_subnav_item(array('name' => __('Attending', Eab_EventsHub::TEXT_DOMAIN), 'slug' => 'attending', 'parent_url' => $bp->displayed_user->domain . 'my-events' . '/', 'parent_slug' => 'my-events', 'screen_function' => array($this, 'bind_bp_attending_page'))); bp_core_new_subnav_item(array('name' => __('Maybe', Eab_EventsHub::TEXT_DOMAIN), 'slug' => 'mabe', 'parent_url' => $bp->displayed_user->domain . 'my-events' . '/', 'parent_slug' => 'my-events', 'screen_function' => array($this, 'bind_bp_maybe_page'))); bp_core_new_subnav_item(array('name' => __('Not Attending', Eab_EventsHub::TEXT_DOMAIN), 'slug' => 'not-attending', 'parent_url' => $bp->displayed_user->domain . 'my-events' . '/', 'parent_slug' => 'my-events', 'screen_function' => array($this, 'bind_bp_not_attending_page'))); do_action('eab-events-my_events-set_up_navigation'); }
function bfox_bp_plans_setup_nav() { global $bp; $slug = 'plans'; $link = (!empty($bp->displayed_user->domain) ? $bp->displayed_user->domain : $bp->loggedin_user->domain) . $slug . '/'; bp_core_new_nav_item(array('name' => __('Reading Plans', 'bfox'), 'slug' => $slug, 'position' => 21, 'show_for_displayed_user' => true, 'screen_function' => 'bfox_bp_plans_my_plans_screen_view', 'default_subnav_slug' => 'my-plans')); /* bp_core_new_subnav_item( array( 'name' => __('Calendar', 'bfox'), 'slug' => 'calendar', 'parent_slug' => $slug, 'parent_url' => $link, 'screen_function' => 'bfox_bp_bible_study_calendar_screen_view', 'position' => 130, ) ); */ bp_core_new_subnav_item(array('name' => __('My Plans', 'bfox'), 'slug' => 'my-plans', 'parent_slug' => $slug, 'parent_url' => $link, 'screen_function' => 'bfox_bp_plans_my_plans_screen_view', 'position' => 130)); /* if ($slug == $bp->current_component && ('schedule' == $bp->current_action || 'delete-schedule' == $bp->current_action)) { $schedule = bfox_bp_schedule(BfoxReadingSchedule::schedule($bp->action_variables[0])); if ($schedule->id) { if ($schedule->is_user_member($bp->displayed_user->id)) { if ('schedule' == $bp->current_action) { bfox_bp_plans_reading_redirect($schedule, $bp->action_variables[1], $bp->action_variables[2]); $bp->current_action = "schedule/$schedule->id"; bp_core_new_subnav_item( array( 'name' => __('View Schedule', 'bfox'), 'slug' => $bp->current_action, 'parent_slug' => $slug, 'parent_url' => $link, 'screen_function' => 'bfox_bp_bible_study_edit_schedule_screen_view', 'position' => 130, )); } elseif ('delete-schedule' == $bp->current_action) { $bp->current_action = "delete-schedule/$schedule->id"; bp_core_new_subnav_item( array( 'name' => __('Delete Schedule', 'bfox'), 'slug' => $bp->current_action, 'parent_slug' => $slug, 'parent_url' => $link, 'screen_function' => 'bfox_bp_bible_study_edit_schedule_screen_view', 'position' => 130, ) ); } } else bp_core_redirect($schedule->url()); } else bp_core_redirect($link); } */ do_action('bfox_bp_plans_setup_nav', $slug, $link); }
/** * bp_media_galleries_setup_nav() * * Sets up the user profile navigation items for the component. This adds the top level nav * item and all the sub level nav items to the navigation array. This is then * rendered in the template. */ function bp_media_galleries_setup_nav() { global $bp; /* Add 'Example' to the main user profile navigation */ bp_core_new_nav_item(array('name' => __('Media Galleries', 'bp-media-galleries'), 'slug' => $bp->media_galleries->slug, 'position' => 80, 'screen_function' => 'bp_media_galleries_view', 'default_subnav_slug' => 'view')); $media_galleries_link = $bp->loggedin_user->domain . $bp->media_galleries->slug . '/'; bp_core_new_subnav_item(array('name' => __('Create Gallery', 'bp-media-galleries'), 'slug' => 'create', 'parent_slug' => $bp->media_galleries->slug, 'parent_url' => $media_galleries_link, 'screen_function' => 'bp_media_galleries_create', 'position' => 10, 'user_has_access' => bp_is_home())); bp_core_new_subnav_item(array('name' => __('Upload Audio', 'bp-media-galleries'), 'slug' => 'upload-audio', 'parent_slug' => $bp->media_galleries->slug, 'parent_url' => $media_galleries_link, 'screen_function' => 'bp_media_galleries_upload_audio', 'position' => 20, 'user_has_access' => bp_is_home())); bp_core_new_subnav_item(array('name' => __('Upload Images', 'bp-media-galleries'), 'slug' => 'upload-images', 'parent_slug' => $bp->media_galleries->slug, 'parent_url' => $media_galleries_link, 'screen_function' => 'bp_media_galleries_upload_images', 'position' => 30, 'user_has_access' => bp_is_home())); bp_core_new_subnav_item(array('name' => __('Upload Videos', 'bp-media-galleries'), 'slug' => 'upload-video', 'parent_slug' => $bp->media_galleries->slug, 'parent_url' => $media_galleries_link, 'screen_function' => 'bp_media_galleries_upload_video', 'position' => 40, 'user_has_access' => bp_is_home())); /* Add a nav item for this component under the settings nav item. See bp_example_screen_settings_menu() for more info */ bp_core_new_subnav_item(array('name' => __('Media Galleries', 'bp-media-galleries'), 'slug' => 'media-galleries-admin', 'parent_slug' => $bp->settings->slug, 'parent_url' => $bp->loggedin_user->domain . $bp->settings->slug . '/', 'screen_function' => 'bp_media_galleries_screen_settings_menu', 'position' => 40, 'user_has_access' => bp_is_my_profile())); }
public function add_activity_nav() { $bp = buddypress(); if (!bp_is_user() || !is_user_logged_in() || !bp_is_my_profile()) { return; } $activity_link = bp_core_get_user_domain(bp_loggedin_user_id()) . $bp->activity->slug . '/'; //add to user activity subnav if it is logged in users profile bp_core_new_subnav_item(array('name' => __('News Feed', 'fb-like-activity-stream'), 'slug' => MYSTREAM_ACTIVITY_SLUG, 'parent_url' => $activity_link, 'parent_slug' => $bp->activity->slug, 'screen_function' => array($this, 'activity_screen'), 'position' => 2, 'user_has_access' => bp_is_my_profile())); //bp_core_new_nav_default(array('parent_slug'=>$bp->activity->slug,'subnav_slug'=>MYSTREAM_ACTIVITY_SLUG,'screen_function'=>array($this,'activity_screen'))); bp_core_remove_subnav_item('activity', 'just-me'); $sub_nav = array('name' => __('My Posts', 'buddypress'), 'slug' => 'personal', 'parent_url' => $activity_link, 'parent_slug' => $bp->activity->slug, 'screen_function' => 'bp_activity_screen_my_activity', 'position' => 10); bp_core_new_subnav_item($sub_nav); }
public function setup_nav($current_user_access) { $bp = buddypress(); if (!bp_is_group()) { return; } $group_id = bp_get_current_group_id(); if (bcg_is_disabled($group_id)) { return; } $current_group = groups_get_current_group(); $group_link = bp_get_group_permalink($current_group); bp_core_new_subnav_item(array('name' => __('Blog', 'blog-categories-for-groups'), 'slug' => BCG_SLUG, 'parent_url' => $group_link, 'parent_slug' => $current_group->slug, 'screen_function' => array($this, 'display'), 'position' => 10, 'user_has_access' => $current_user_access, 'item_css_id' => 'blog')); }
/** * Load Custom tabs on BuddyPress * * @global object $bp global BuddyPress object */ function custom_media_nav_tab() { $bp = buddypress(); if (!function_exists('bp_core_new_nav_item')) { return; } if (bp_is_blog_page() || !bp_is_group() && !(isset($bp->displayed_user) && isset($bp->displayed_user->id)) || apply_filters('rtmedia_render_bp_nav', false)) { return; } global $rtmedia; if (function_exists('bp_is_group') && !bp_is_group()) { if (isset($bp->displayed_user) && isset($bp->displayed_user->id)) { $profile_counts = $this->actual_counts($bp->displayed_user->id); } $tab_position = apply_filters('rtmedia_media_tab_position', 99); if (0 !== intval($rtmedia->options['buddypress_enableOnProfile'])) { bp_core_new_nav_item(array('name' => RTMEDIA_MEDIA_LABEL . ' <span>' . $profile_counts['total']['all'] . '</span>', 'slug' => apply_filters('rtmedia_media_tab_slug', RTMEDIA_MEDIA_SLUG), 'screen_function' => array($this, 'media_screen'), 'default_subnav_slug' => 'all', 'position' => $tab_position)); } } if (bp_is_group() && 0 !== intval($rtmedia->options['buddypress_enableOnGroup'])) { $media_enabled = true; //filter for rtMedia PRO for PER GROUP MEDIA enable/disable functionality $media_enabled = apply_filters('rtmedia_media_enabled_for_current_group', $media_enabled); // check if current user can view this group $current_group = groups_get_current_group(); /** * remove `$current_group->is_visible` and add `bp_group_is_visible( $current_group )` * reason : In Buddypress 2.7 `is_visible` return false so we can't display `media` tab on group * issue id : http://git.rtcamp.com/rtmedia/rtMedia/issues/119 */ // $is_visible_to_current_user = $current_group->is_visible; $is_visible_to_current_user = bp_group_is_visible($current_group); if ($media_enabled && $is_visible_to_current_user) { $group_counts = $this->actual_counts($bp->groups->current_group->id, 'group'); $slug = apply_filters('rtmedia_group_media_tab_slug', RTMEDIA_MEDIA_SLUG); if (isset($bp->version) && $bp->version > '2.5.3') { /* * As from BuddyPress 2.6, you can't access $bp->bp_options_nav directly. * Use `bp_core_new_subnav_item` to add subnav item. * * Check https://buddypress.trac.wordpress.org/ticket/6534 and https://buddypress.trac.wordpress.org/changeset/10745 * for more details */ bp_core_new_subnav_item(array('name' => RTMEDIA_MEDIA_LABEL . ' <span>' . $group_counts['total']['all'] . '</span>', 'link' => trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . bp_get_current_group_slug() . '/') . $slug, 'slug' => $slug, 'parent_slug' => bp_get_current_group_slug(), 'parent_url' => trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . bp_get_current_group_slug() . '/'), 'user_has_access' => true, 'css_id' => 'rtmedia-media-nav', 'position' => 99, 'screen_function' => array($this, 'media_screen'), 'default_subnav_slug' => 'all')); } else { $bp->bp_options_nav[bp_get_current_group_slug()]['media'] = array('name' => RTMEDIA_MEDIA_LABEL . ' <span>' . $group_counts['total']['all'] . '</span>', 'link' => trailingslashit(bp_get_root_domain() . '/' . bp_get_groups_root_slug() . '/' . bp_get_current_group_slug() . '/') . $slug, 'slug' => $slug, 'user_has_access' => true, 'css_id' => 'rtmedia-media-nav', 'position' => 99, 'screen_function' => array($this, 'media_screen'), 'default_subnav_slug' => 'all'); } } } }
/** * @ticket BP7203 */ public function test_remove_subnav_item_array_as_screen_function() { $bp = buddypress(); add_filter('bp_is_active', array($this, 'foo_is_active'), 10, 2); $bp->foo = new stdClass(); $bp->foo->nav = new BP_Core_Nav(0); $expected = array('foo', 'bar'); bp_core_new_nav_item(array('name' => 'Foo', 'slug' => 'foo', 'screen_function' => $expected), 'foo'); bp_core_new_subnav_item(array('name' => 'Bar', 'slug' => 'bar', 'parent_slug' => 'foo', 'parent_url' => 'foo', 'screen_function' => $expected), 'foo'); remove_filter('bp_is_active', array($this, 'foo_is_active'), 10); $this->assertNotEmpty($bp->foo->nav->get_primary(array('slug' => 'foo'), false)); $tested = $bp->foo->nav->delete_nav('foo'); $this->assertSame($expected, reset($tested)); $this->assertEmpty($bp->foo->nav->get_primary(array('slug' => 'foo'), false)); }
/** * Setup profile nav. */ public function setup_nav() { // Determine user to use if (bp_displayed_user_domain()) { $user_domain = bp_displayed_user_domain(); } elseif (bp_loggedin_user_domain()) { $user_domain = bp_loggedin_user_domain(); } else { return; } // Add activity sub nav item if (bp_is_active('activity') && apply_filters('bp_follow_activity_show_activity_subnav', true)) { bp_core_new_subnav_item(array('name' => _x('Followed Activity', 'Activity subnav tab', 'bp-follow'), 'slug' => constant('BP_FOLLOW_ACTIVITY_USER_ACTIVITY_SLUG'), 'parent_url' => trailingslashit($user_domain . bp_get_activity_slug()), 'parent_slug' => bp_get_activity_slug(), 'screen_function' => 'bp_activity_screen_my_activity', 'position' => 21, 'item_css_id' => 'activity-follow')); } }
/** * bp_groupblog_setup_nav() */ function bp_groupblog_setup_nav() { global $bp, $current_blog; if (bp_is_group()) { $bp->groups->current_group->is_group_visible_to_member = 'public' == $bp->groups->current_group->status || groups_is_user_member(bp_loggedin_user_id(), bp_get_current_group_id()) ? true : false; $group_link = bp_get_group_permalink(groups_get_current_group()); $checks = get_site_option('bp_groupblog_blog_defaults_options'); if (!$checks['deep_group_integration']) { $parent_slug = isset($bp->bp_nav[$bp->groups->current_group->slug]) ? $bp->groups->current_group->slug : $bp->groups->slug; if (bp_groupblog_is_blog_enabled($bp->groups->current_group->id) or isset($_POST['groupblog-create-new']) and $_POST['groupblog-create-new'] == 'yes') { bp_core_new_subnav_item(array('name' => __('Blog', 'groupblog'), 'slug' => 'blog', 'parent_url' => $group_link, 'parent_slug' => $parent_slug, 'screen_function' => 'groupblog_screen_blog', 'position' => 32, 'item_css_id' => 'group-blog')); } } } }
function bebop_setup_user_nav() { global $bp; $should_users_verify_content = bebop_tables::get_option_value('bebop_content_user_verification'); //Shows in the profile all the time. bp_core_new_nav_item(array('name' => __('Resources', 'bebop'), 'slug' => 'bebop', 'position' => 30, 'show_for_displayed_user' => true, 'screen_function' => 'bebop_user_settings', 'default_subnav_slug' => 'bebop-content')); bp_core_new_subnav_item(array('name' => __('Content', 'bebop'), 'slug' => 'bebop-content', 'parent_url' => bp_displayed_user_domain() . 'bebop/', 'parent_slug' => 'bebop', 'screen_function' => 'bebop_user_settings', 'position' => 10)); //only show if current user is the owner of the profile. if (bp_is_my_profile()) { if ($should_users_verify_content != 'no') { bp_core_new_subnav_item(array('name' => __('Content Manager', 'bebop'), 'slug' => 'bebop-manager', 'parent_url' => $bp->loggedin_user->domain . 'bebop/', 'parent_slug' => 'bebop', 'screen_function' => 'bebop_user_settings', 'position' => 20)); } bp_core_new_subnav_item(array('name' => __('Accounts', 'bebop'), 'slug' => 'bebop-accounts', 'parent_url' => $bp->loggedin_user->domain . 'bebop/', 'parent_slug' => 'bebop', 'screen_function' => 'bebop_user_settings', 'position' => 20)); } }
/** * @group bp_core_sort_subnav_items */ public function test_bp_core_sort_subnav_items() { $bp_options_nav = buddypress()->bp_options_nav; $u = $this->factory->user->create(); $old_current_user = get_current_user_id(); $this->set_current_user($u); $user_domain = bp_core_get_user_domain($u); $this->go_to($user_domain); bp_core_new_subnav_item(array('name' => 'Foo', 'slug' => 'foo', 'parent_url' => trailingslashit($user_domain . 'foo'), 'parent_slug' => 'foo', 'screen_function' => 'foo_screen_function', 'position' => 10)); bp_core_sort_subnav_items(); $expected = array('name' => 'Foo', 'link' => trailingslashit($user_domain . 'foo/foo'), 'slug' => 'foo', 'css_id' => 'foo', 'position' => 10, 'user_has_access' => true, 'no_access_url' => '', 'screen_function' => 'foo_screen_function', 'show_in_admin_bar' => false); $this->assertSame(buddypress()->bp_options_nav['foo'][10], $expected); // Clean up buddypress()->bp_options_nav = $bp_options_nav; $this->set_current_user($old_current_user); }
/** * Create a tab on member profile pages */ public function profile_tab() { // Determine user to use if (bp_displayed_user_domain()) { $user_domain = bp_displayed_user_domain(); } elseif (bp_loggedin_user_domain()) { $user_domain = bp_loggedin_user_domain(); } else { return; } $parent_url = trailingslashit($user_domain . $this->slug); $nav_text = __('Papers', 'social-paper'); // create primary nav bp_core_new_nav_item(array('name' => $nav_text, 'slug' => $this->slug, 'item_css_id' => 'user-papers', 'show_for_displayed_user' => true, 'site_admin_only' => false, 'position' => $this->position, 'screen_function' => 'cacsp_profile_screen', 'default_subnav_slug' => $this->published_slug)); // create subnav items bp_core_new_subnav_item(array('name' => __('Published', 'social-paper'), 'slug' => $this->published_slug, 'parent_url' => $parent_url, 'parent_slug' => $this->slug, 'screen_function' => 'cacsp_profile_screen_published', 'position' => 10)); bp_core_new_subnav_item(array('name' => __('Drafts', 'social-paper'), 'slug' => $this->drafts_slug, 'parent_url' => $parent_url, 'parent_slug' => $this->slug, 'screen_function' => 'cacsp_profile_screen_draft', 'position' => 10, 'user_has_access' => bp_core_can_edit_settings())); }
public function test_backcompat_remove_group_nav_items() { $g1 = $this->factory->group->create(); // In group context $g_obj = groups_get_group($g1); $this->go_to(bp_get_group_permalink($g_obj)); bp_core_new_subnav_item(array('name' => 'Clam', 'slug' => 'clam', 'parent_slug' => bp_get_current_group_slug(), 'parent_url' => bp_get_group_permalink($g_obj), 'screen_function' => 'clam_subnav')); bp_core_remove_subnav_item($g_obj->slug, 'clam'); $nav = bp_get_nav_menu_items('groups'); $found = false; foreach ($nav as $_nav) { if ('clam' === $_nav->css_id) { $found = true; break; } } $this->assertFalse($found); }
function mtc_setup_nav() { global $bp; /* Add 'My Content' to the main user profile navigation */ bp_core_new_nav_item(array('name' => __('My Content', 'bp-mtc'), 'slug' => $bp->mtc->slug, 'position' => 80, 'screen_function' => 'bp_mtc_screen_one', 'default_subnav_slug' => 'Content')); $mtc_link = $bp->loggedin_user->domain . $bp->mtc->slug . '/'; /* Create two sub nav items for this component */ bp_core_new_subnav_item(array('name' => __('Content', 'bp-mtc'), 'slug' => 'my-content', 'parent_slug' => $bp->mtc->slug, 'parent_url' => $mtc_link, 'screen_function' => 'bp_mtc_screen_one', 'position' => 10)); bp_core_new_subnav_item(array('name' => __('Select Tags', 'bp-mtc'), 'slug' => 'select-tags', 'parent_slug' => $bp->mtc->slug, 'parent_url' => $mtc_link, 'screen_function' => 'bp_mtc_screen_two', 'position' => 20, 'user_has_access' => bp_is_my_profile())); /* Add a nav item for this component under the settings nav item. See bp_example_screen_settings_menu() for more info */ /* bp_core_new_subnav_item( array( 'name' => __( 'Example', 'mtc' ), 'slug' => 'example-admin', 'parent_slug' => $bp->settings->slug, 'parent_url' => $bp->loggedin_user->domain . $bp->settings->slug . '/', 'screen_function' => 'bp_example_screen_settings_menu', 'position' => 40, 'user_has_access' => bp_is_my_profile() // Only the logged in user can access this on his/her profile ) );*/ }
function bp_core_add_settings_nav() { global $bp; /* Set up settings as a sudo-component for identification and nav selection */ $bp->settings->id = 'settings'; $bp->settings->slug = BP_SETTINGS_SLUG; /* Register this in the active components array */ $bp->active_components[$bp->settings->slug] = $bp->settings->id; /* Add the settings navigation item */ bp_core_new_nav_item( array( 'name' => __('Settings', 'buddypress'), 'slug' => $bp->settings->slug, 'position' => 100, 'show_for_displayed_user' => false, 'screen_function' => 'bp_core_screen_general_settings', 'default_subnav_slug' => 'general' ) ); $settings_link = $bp->loggedin_user->domain . $bp->settings->slug . '/'; bp_core_new_subnav_item( array( 'name' => __( 'General', 'buddypress' ), 'slug' => 'general', 'parent_url' => $settings_link, 'parent_slug' => $bp->settings->slug, 'screen_function' => 'bp_core_screen_general_settings', 'position' => 10, 'user_has_access' => bp_is_my_profile() ) ); bp_core_new_subnav_item( array( 'name' => __( 'Notifications', 'buddypress' ), 'slug' => 'notifications', 'parent_url' => $settings_link, 'parent_slug' => $bp->settings->slug, 'screen_function' => 'bp_core_screen_notification_settings', 'position' => 20, 'user_has_access' => bp_is_my_profile() ) ); if ( !is_super_admin() && !(int) $bp->site_options['bp-disable-account-deletion'] ) bp_core_new_subnav_item( array( 'name' => __( 'Delete Account', 'buddypress' ), 'slug' => 'delete-account', 'parent_url' => $settings_link, 'parent_slug' => $bp->settings->slug, 'screen_function' => 'bp_core_screen_delete_account', 'position' => 90, 'user_has_access' => bp_is_my_profile() ) ); }
function wpmudev_chat_buddypress_settings_setup_nav() { global $wpmudev_chat; $slug_parent = 'settings'; $slug_page = 'chat'; // Set thsi so when we get to wp_footer it knows we need to load the JS/CSS for the Friends display. $wpmudev_chat->_chat_plugin_settings['blocked_urls']['front'] = false; // Determine user to use if (bp_displayed_user_domain()) { $user_domain = bp_displayed_user_domain(); } elseif (bp_loggedin_user_domain()) { $user_domain = bp_loggedin_user_domain(); } else { return; } //echo "user_domain=[". $user_domain ."]<br />"; $settings_link = trailingslashit($user_domain . $slug_parent); //echo "settings_link=[". $settings_link ."]<br />"; $sub_nav = array('name' => __('Chat', $wpmudev_chat->translation_domain), 'slug' => $slug_page, 'parent_url' => $settings_link, 'parent_slug' => $slug_parent, 'screen_function' => 'wpmudev_chat_settings_screen_chat_proc', 'position' => 30, 'user_has_access' => bp_core_can_edit_settings()); bp_core_new_subnav_item($sub_nav); }
function intention_profile_menu() { global $wpdb, $bp; $displayed_user_id = $bp->displayed_user->id; $posts_table = $wpdb->prefix . "posts"; $intentions_table = $wpdb->prefix . "intentions"; $sql = "SELECT COUNT(*) as intention_count FROM {$posts_table} WHERE post_author = %d AND post_status='publish' AND post_type='post'"; $sql = $wpdb->prepare($sql, $displayed_user_id); $intentions_cnt = $wpdb->get_var($sql); $meditonsql = "SELECT {$posts_table}.* \r\n FROM {$posts_table} LEFT JOIN {$intentions_table} ON {$posts_table}.ID={$intentions_table}.intention_id \r\n WHERE {$intentions_table}.meditater_id = %d AND {$posts_table}.post_status='publish' AND {$posts_table}.post_type='post' \r\n GROUP BY {$posts_table}.ID ORDER BY {$posts_table}.post_date DESC"; $meditonsql = $wpdb->prepare($meditonsql, $displayed_user_id); $wpdb->get_results($meditonsql); $mediton_cnt = $wpdb->num_rows; $meditotalsql = "SELECT SUM(total_mins) FROM {$intentions_table} WHERE meditater_id = %d"; $meditotalsql = $wpdb->prepare($meditotalsql, $displayed_user_id); $meditime_sum = secns_to_human($wpdb->get_var($meditotalsql)); bp_core_new_nav_item(array('name' => sprintf('Intentions <span>%d</span>', $intentions_cnt), 'slug' => 'intentions', 'position' => 40, 'screen_function' => 'intentions_user_grid', 'default_subnav_slug' => 'summary')); $parent_url = $bp->displayed_user->domain . 'intentions/'; bp_core_new_subnav_item(array('name' => 'Summary', 'slug' => 'summary', 'parent_slug' => 'intentions', 'parent_url' => $parent_url, 'screen_function' => 'intentions_user_grid', 'position' => 10)); bp_core_new_subnav_item(array('name' => sprintf('Intentions Set <span class="cnt">%d</span>', $intentions_cnt), 'slug' => 'wishes', 'parent_slug' => 'intentions', 'parent_url' => $parent_url, 'screen_function' => 'intentions_user_grid', 'position' => 20)); bp_core_new_subnav_item(array('name' => sprintf('Intentions Meditated On <span class="cnt">%d</span>', $mediton_cnt), 'slug' => 'mediton', 'parent_slug' => 'intentions', 'parent_url' => $parent_url, 'screen_function' => 'intentions_user_grid', 'position' => 30)); }
/** * Add BuddyPress navigation. * * @return void **/ function add_navigation() { global $bp; /* Set up directory as a sudo-component for identification and nav selection */ $directory_page = get_page($this->directory_page_id); if (!@is_object($bp->directory)) { $bp->directory = new stdClass(); } $bp->directory->slug = $directory_page->post_name; /* Construct URL to the BuddyPress profile URL */ $user_domain = !empty($bp->displayed_user->domain) ? $bp->displayed_user->domain : $bp->loggedin_user->domain; $parent_url = $user_domain . $bp->directory->slug . '/'; /* Add the settings navigation item */ if (0 < $directory_page->ID) { $nav_title = $directory_page->post_title; } else { $nav_title = 'Directory'; } bp_core_new_nav_item(array('name' => __($nav_title, $this->text_domain), 'slug' => $bp->directory->slug, 'position' => 100, 'show_for_displayed_user' => true, 'screen_function' => array(&$this, 'load_template'))); if (bp_is_my_profile()) { $directory_page = get_page($this->my_listings_page_id); if (0 < $directory_page->ID) { $nav_title = $directory_page->post_title; } else { $nav_title = 'My Directory'; } bp_core_new_subnav_item(array('name' => __($nav_title, $this->text_domain), 'slug' => $directory_page->post_name, 'parent_url' => $parent_url, 'parent_slug' => $bp->directory->slug, 'screen_function' => array(&$this, 'load_template'), 'position' => 10, 'user_has_access' => true)); if ($this->use_credits && !$this->is_full_access()) { bp_core_new_subnav_item(array('name' => __('My Credits', $this->text_domain), 'slug' => 'my-credits', 'parent_url' => $parent_url, 'parent_slug' => $bp->directory->slug, 'screen_function' => array(&$this, 'load_template'), 'position' => 10, 'user_has_access' => true)); } if (current_user_can('create_listings')) { bp_core_new_subnav_item(array('name' => __('Add Listing', $this->text_domain), 'slug' => 'add-listing', 'parent_url' => $parent_url, 'parent_slug' => $bp->directory->slug, 'screen_function' => array(&$this, 'load_template'), 'position' => 10, 'user_has_access' => true)); } } else { //display author classifids page bp_core_new_subnav_item(array('name' => __('All', $this->text_domain), 'slug' => 'all', 'parent_url' => $parent_url, 'parent_slug' => $bp->directory->slug, 'screen_function' => array(&$this, 'load_template'), 'position' => 10, 'user_has_access' => true)); } }