/** * Map IdeaStream User's profile, comments part, to BuddyPress one * * @package WP Idea Stream * @subpackage buddypress/functions * * @since 2.0.0 * * @param int $user_id the user ID * @param string $user_nicename the user nicename * @uses bp_core_get_user_domain() to build BuddyPress user's base url * @uses wp_idea_stream_root_slug() to get IdeaStream root slug * @return string the BuddyPressified user's profile comments url */ function wp_idea_stream_buddypress_get_user_comments_url($user_id = 0, $user_nicename = '') { if (empty($user_id)) { return false; } $root_url = bp_core_get_user_domain($user_id, $user_nicename); if (!wp_idea_stream_get_idea_var('is_user_embed')) { $comments_slug = buddypress()->ideastream->idea_nav['comments']['slug']; } else { $comments_slug = wp_idea_stream_user_comments_slug(); } return trailingslashit($root_url . wp_idea_stream_root_slug() . '/' . $comments_slug); }
/** * User comments slug of the plugin * * @package WP Idea Stream * @subpackage admin/settings * * @since 2.0.0 * * @uses esc_attr() to sanitize the attribute * @uses wp_idea_stream_user_comments_slug() to get the active slug * @return string HTML output */ function wp_idea_stream_user_comments_slug_setting_callback() { ?> <input name="_ideastream_user_comments_slug" id="_ideastream_user_comments_slug" type="text" class="regular-text code" value="<?php echo esc_attr(wp_idea_stream_user_comments_slug()); ?> " /> <?php }
/** * Setup the rewrite ids and slugs * * @package WP Idea Stream * @subpackage core/classes * * @since 2.0.0 * * @uses wp_idea_stream_user_rewrite_id() * @uses wp_idea_stream_user_rates_rewrite_id() * @uses wp_idea_stream_user_comments_rewrite_id() * @uses wp_idea_stream_cpage_rewrite_id() * @uses wp_idea_stream_action_rewrite_id() * @uses wp_idea_stream_search_rewrite_id() * @uses wp_idea_stream_user_slug() * @uses wp_idea_stream_user_rates_slug() * @uses wp_idea_stream_user_comments_slug() * @uses wp_idea_stream_cpage_slug() * @uses wp_idea_stream_action_slug() */ private function setup_globals() { /** Rewrite ids ***************************************************************/ $this->page_rid = 'paged'; // WordPress built-in global var $this->user_rid = wp_idea_stream_user_rewrite_id(); $this->user_rates_rid = wp_idea_stream_user_rates_rewrite_id(); $this->user_comments_rid = wp_idea_stream_user_comments_rewrite_id(); $this->cpage_rid = wp_idea_stream_cpage_rewrite_id(); $this->action_rid = wp_idea_stream_action_rewrite_id(); $this->search_rid = wp_idea_stream_search_rewrite_id(); /** Rewrite slugs *************************************************************/ $this->user_slug = wp_idea_stream_user_slug(); $this->user_rates_slug = wp_idea_stream_user_rates_slug(); $this->user_comments_slug = wp_idea_stream_user_comments_slug(); $this->cpage_slug = wp_idea_stream_cpage_slug(); $this->action_slug = wp_idea_stream_action_slug(); }
/** * Builds user's profile nav * * @package WP Idea Stream * @subpackage users/functions * * @since 2.0.0 * @since 2.3.0 Added the $nofilter parameter to skip filters * * @param int $user_id User id * @param string $user_nicename Optional. User nicename * @param bool $nofilter. Whether to fire filters or not. * @uses wp_idea_stream_users_get_user_profile_url() to get user main profile url * @uses wp_idea_stream_is_user_profile_ideas() to check whether main profile is currently displayed * @uses sanitize_title() to sanitize the nav slug * @uses wp_idea_stream_users_get_user_comments_url() to get user comments profile url * @uses wp_idea_stream_is_user_profile_comments() to check whether comments profile is currently displayed * @uses wp_idea_stream_user_comments_slug() to get user comments slug * @uses wp_idea_stream_is_rating_disabled() to check ratings functionnality is available * @uses wp_idea_stream_users_get_user_rates_url() to get user rates profile url * @uses wp_idea_stream_is_user_profile_rates() to check whether rates profile is currently displayed * @uses wp_idea_stream_user_rates_slug() to get user rates slug * @uses apply_filters() Calls 'wp_idea_stream_users_get_profile_nav_items' to override/add new datas * @return array the nav items organized in an associative array */ function wp_idea_stream_users_get_profile_nav_items($user_id = 0, $username = '', $nofilter = false) { // Bail if no id or username are provided. if (empty($user_id) || empty($username)) { return array(); } $nav_items = array('profile' => array('title' => __('Published', 'wp-idea-stream'), 'url' => wp_idea_stream_users_get_user_profile_url($user_id, $username), 'current' => wp_idea_stream_is_user_profile_ideas(), 'slug' => sanitize_title(_x('ideas', 'user ideas profile slug for BuddyPress use', 'wp-idea-stream'))), 'comments' => array('title' => __('Commented', 'wp-idea-stream'), 'url' => wp_idea_stream_users_get_user_comments_url($user_id, $username), 'current' => wp_idea_stream_is_user_profile_comments(), 'slug' => wp_idea_stream_user_comments_slug())); if (!wp_idea_stream_is_rating_disabled()) { $nav_items['rates'] = array('title' => __('Rated', 'wp-idea-stream'), 'url' => wp_idea_stream_users_get_user_rates_url($user_id, $username), 'current' => wp_idea_stream_is_user_profile_rates(), 'slug' => wp_idea_stream_user_rates_slug()); } if (false === $nofilter) { /** * Filter the available user's profile nav items * * @param array $nav_items the nav items * @param int $user_id the user ID * @param string $username the username */ return apply_filters('wp_idea_stream_users_get_profile_nav_items', $nav_items, $user_id, $username); } else { return $nav_items; } }