function setup_nav() { global $blog_id; //check multisite or normal mode for correct permission checking if (is_multisite() && $blog_id != BP_ROOT_BLOG) { //FIXME MS mode doesn't seem to recognize cross subsite caps, using the proper functions, for now we use switch_blog. $current_blog = $blog_id; switch_to_blog(BP_ROOT_BLOG); $can_manage_events = current_user_can_for_blog(BP_ROOT_BLOG, 'edit_events'); $can_manage_locations = current_user_can_for_blog(BP_ROOT_BLOG, 'edit_locations'); $can_manage_bookings = current_user_can_for_blog(BP_ROOT_BLOG, 'manage_bookings'); switch_to_blog($current_blog); } else { $can_manage_events = current_user_can('edit_events'); $can_manage_locations = current_user_can('edit_locations'); $can_manage_bookings = current_user_can('manage_bookings'); } /* Add 'Events' to the main user profile navigation */ $main_nav = array('name' => __('Events', 'dbem'), 'slug' => em_bp_get_slug(), 'position' => 80, 'screen_function' => 'bp_em_events', 'default_subnav_slug' => 'profile'); $em_link = trailingslashit(bp_loggedin_user_domain() . em_bp_get_slug()); /* Create SubNav Items */ $sub_nav[] = array('name' => __('My Profile', 'dbem'), 'slug' => 'profile', 'parent_slug' => em_bp_get_slug(), 'parent_url' => $em_link, 'screen_function' => 'bp_em_events', 'position' => 10); $sub_nav[] = array('name' => __('Events I\'m Attending', 'dbem'), 'slug' => 'attending', 'parent_slug' => em_bp_get_slug(), 'parent_url' => $em_link, 'screen_function' => 'bp_em_attending', 'position' => 20, 'user_has_access' => bp_is_my_profile()); if ($can_manage_events) { $sub_nav[] = array('name' => __('My Events', 'dbem'), 'slug' => 'my-events', 'parent_slug' => em_bp_get_slug(), 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_events', 'position' => 30, 'user_has_access' => bp_is_my_profile()); } if ($can_manage_locations && get_option('dbem_locations_enabled')) { $sub_nav[] = array('name' => __('My Locations', 'dbem'), 'slug' => 'my-locations', 'parent_slug' => em_bp_get_slug(), 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_locations', 'position' => 40, 'user_has_access' => bp_is_my_profile()); } if ($can_manage_bookings && get_option('dbem_rsvp_enabled')) { $sub_nav[] = array('name' => __('My Event Bookings', 'dbem'), 'slug' => 'my-bookings', 'parent_slug' => em_bp_get_slug(), 'parent_url' => $em_link, 'screen_function' => 'bp_em_my_bookings', 'position' => 50, 'user_has_access' => bp_is_my_profile()); } if (bp_is_active('groups')) { /* Create Profile Group Sub-Nav */ $sub_nav[] = array('name' => __('Events', 'dbem'), 'slug' => 'group-events', 'parent_slug' => bp_get_groups_slug(), 'parent_url' => trailingslashit(bp_loggedin_user_domain() . bp_get_groups_slug()), 'screen_function' => 'bp_em_my_group_events', 'position' => 60, 'user_has_access' => bp_is_my_profile()); } parent::setup_nav($main_nav, $sub_nav); add_action('bp_init', array(&$this, 'setup_group_nav')); }
function setup_admin_bar() { global $bp, $blog_id; // Prevent debug notices $wp_admin_nav = array(); // Menus for logged in user if (is_user_logged_in()) { //check multisite or normal mode for correct permission checking if (is_multisite() && $blog_id != BP_ROOT_BLOG) { //FIXME MS mode doesn't seem to recognize cross subsite caps, using the proper functions, for now we use switch_blog. $current_blog = $blog_id; switch_to_blog(BP_ROOT_BLOG); $can_manage_events = current_user_can_for_blog(BP_ROOT_BLOG, 'edit_events'); $can_manage_locations = current_user_can_for_blog(BP_ROOT_BLOG, 'edit_locations'); $can_manage_bookings = current_user_can_for_blog(BP_ROOT_BLOG, 'manage_bookings'); switch_to_blog($current_blog); } else { $can_manage_events = current_user_can('edit_events'); $can_manage_locations = current_user_can('edit_locations'); $can_manage_bookings = current_user_can('manage_bookings'); } $em_link = trailingslashit(bp_loggedin_user_domain() . em_bp_get_slug()); /* Add 'Events' to the main user profile navigation */ $wp_admin_nav[] = array('parent' => $bp->my_account_menu_id, 'id' => 'my-em-' . $this->id, 'title' => __('Events', 'dbem'), 'href' => $em_link); /* Create SubNav Items */ $wp_admin_nav[] = array('parent' => 'my-em-' . $this->id, 'id' => 'my-em-' . $this->id . '-profile', 'title' => __('My Profile', 'dbem'), 'href' => $em_link . 'profile/'); $wp_admin_nav[] = array('parent' => 'my-em-' . $this->id, 'id' => 'my-em-' . $this->id . '-attending', 'title' => __('Events I\'m Attending', 'dbem'), 'href' => $em_link . 'attending/'); if ($can_manage_events) { $wp_admin_nav[] = array('parent' => 'my-em-' . $this->id, 'id' => 'my-em-' . $this->id . '-my-events', 'title' => __('My Events', 'dbem'), 'href' => $em_link . 'my-events/'); } if ($can_manage_locations && get_option('dbem_locations_enabled')) { $wp_admin_nav[] = array('parent' => 'my-em-' . $this->id, 'id' => 'my-em-' . $this->id . '-my-locations', 'title' => __('My Locations', 'dbem'), 'href' => $em_link . 'my-locations/'); } if ($can_manage_bookings && get_option('dbem_rsvp_enabled')) { $wp_admin_nav[] = array('parent' => 'my-em-' . $this->id, 'id' => 'my-em-' . $this->id . '-my-bookings', 'title' => __('My Event Bookings', 'dbem'), 'href' => $em_link . 'my-bookings/'); } if (bp_is_active('groups')) { /* Create Profile Group Sub-Nav */ $wp_admin_nav[] = array('parent' => 'my-account-groups', 'id' => 'my-account-groups-' . $this->id, 'title' => __('Events', 'dbem'), 'href' => trailingslashit(bp_loggedin_user_domain() . bp_get_groups_slug()) . 'group-events/'); } } parent::setup_admin_bar($wp_admin_nav); }
/** * Echo the Events Manager BuddyPresss component's slug * @since 5.0 */ function em_bp_slug() { echo em_bp_get_slug(); }