diff -r c7c0fbc09788 -r 5e8dcbe22c24 web/wp-content/plugins/bbpress/includes/core/template-functions.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/wp-content/plugins/bbpress/includes/core/template-functions.php Tue Dec 04 18:43:10 2012 -0800 @@ -0,0 +1,468 @@ +is_main_query() ) + return; + + // Bail if filters are suppressed on this query + if ( true == $posts_query->get( 'suppress_filters' ) ) + return; + + // Bail if in admin + if ( is_admin() ) + return; + + // Get query variables + $bbp_view = $posts_query->get( bbp_get_view_rewrite_id() ); + $bbp_user = $posts_query->get( bbp_get_user_rewrite_id() ); + $is_edit = $posts_query->get( bbp_get_edit_rewrite_id() ); + + // It is a user page - We'll also check if it is user edit + if ( !empty( $bbp_user ) ) { + + // Not a user_id so try email and slug + if ( !is_numeric( $bbp_user ) ) { + + // Email was passed + if ( is_email( $bbp_user ) ) { + $bbp_user = get_user_by( 'email', $bbp_user ); + + // Try nicename + } else { + $bbp_user = get_user_by( 'slug', $bbp_user ); + } + + // If we were successful, set to ID + if ( is_object( $bbp_user ) ) { + $bbp_user = $bbp_user->ID; + } + } + + // Cast as int, just in case + $bbp_user = (int) $bbp_user; + + // 404 and bail if user does not have a profile + if ( ! bbp_user_has_profile( $bbp_user ) ) { + $posts_query->set_404(); + return; + } + + /** User Exists *******************************************************/ + + $is_favs = $posts_query->get( bbp_get_user_favorites_rewrite_id() ); + $is_subs = $posts_query->get( bbp_get_user_subscriptions_rewrite_id() ); + $is_topics = $posts_query->get( bbp_get_user_topics_rewrite_id() ); + $is_replies = $posts_query->get( bbp_get_user_replies_rewrite_id() ); + + // View or edit? + if ( !empty( $is_edit ) ) { + + // We are editing a profile + $posts_query->bbp_is_single_user_edit = true; + + // Load the core WordPress contact methods + if ( !function_exists( '_wp_get_user_contactmethods' ) ) { + include_once( ABSPATH . 'wp-includes/registration.php' ); + } + + // Load the edit_user functions + if ( !function_exists( 'edit_user' ) ) { + require_once( ABSPATH . 'wp-admin/includes/user.php' ); + } + + // Load the grant/revoke super admin functions + if ( is_multisite() && !function_exists( 'revoke_super_admin' ) ) { + require_once( ABSPATH . 'wp-admin/includes/ms.php' ); + } + + // Editing a user + $posts_query->bbp_is_edit = true; + + // User favorites + } elseif ( ! empty( $is_favs ) ) { + $posts_query->bbp_is_single_user_favs = true; + + // User subscriptions + } elseif ( ! empty( $is_subs ) ) { + $posts_query->bbp_is_single_user_subs = true; + + // User topics + } elseif ( ! empty( $is_topics ) ) { + $posts_query->bbp_is_single_user_topics = true; + + // User topics + } elseif ( ! empty( $is_replies ) ) { + $posts_query->bbp_is_single_user_replies = true; + + // User profile + } else { + $posts_query->bbp_is_single_user_profile = true; + } + + // Looking at a single user + $posts_query->bbp_is_single_user = true; + + // Make sure 404 is not set + $posts_query->is_404 = false; + + // Correct is_home variable + $posts_query->is_home = false; + + // Get the user data + $user = get_userdata( $bbp_user ); + + // User is looking at their own profile + if ( get_current_user_id() == $user->ID ) { + $posts_query->bbp_is_single_user_home = true; + } + + // Set bbp_user_id for future reference + $posts_query->set( 'bbp_user_id', $user->ID ); + + // Set author_name as current user's nicename to get correct posts + $posts_query->set( 'author_name', $user->user_nicename ); + + // Set the displayed user global to this user + bbpress()->displayed_user = $user; + + // View Page + } elseif ( !empty( $bbp_view ) ) { + + // Check if the view exists by checking if there are query args are set + $view_args = bbp_get_view_query_args( $bbp_view ); + + // Bail if view args is false (view isn't registered) + if ( false === $view_args ) { + $posts_query->set_404(); + return; + } + + // Correct is_home variable + $posts_query->is_home = false; + + // We are in a custom topic view + $posts_query->bbp_is_view = true; + + // Forum/Topic/Reply Edit Page + } elseif ( !empty( $is_edit ) ) { + + // Get the post type from the main query loop + $post_type = $posts_query->get( 'post_type' ); + + // Check which post_type we are editing, if any + if ( !empty( $post_type ) ) { + switch( $post_type ) { + + // We are editing a forum + case bbp_get_forum_post_type() : + $posts_query->bbp_is_forum_edit = true; + $posts_query->bbp_is_edit = true; + break; + + // We are editing a topic + case bbp_get_topic_post_type() : + $posts_query->bbp_is_topic_edit = true; + $posts_query->bbp_is_edit = true; + break; + + // We are editing a reply + case bbp_get_reply_post_type() : + $posts_query->bbp_is_reply_edit = true; + $posts_query->bbp_is_edit = true; + break; + } + + // We are editing a topic tag + } elseif ( bbp_is_topic_tag() ) { + $posts_query->bbp_is_topic_tag_edit = true; + $posts_query->bbp_is_edit = true; + } + + // We save post revisions on our own + remove_action( 'pre_post_update', 'wp_save_post_revision' ); + + // Topic tag page + } elseif ( bbp_is_topic_tag() ) { + $posts_query->set( 'bbp_topic_tag', get_query_var( 'term' ) ); + $posts_query->set( 'post_type', bbp_get_topic_post_type() ); + $posts_query->set( 'posts_per_page', bbp_get_topics_per_page() ); + } +}