BBP_Forums_Group_Extension::display_forums( $offset )
Output the forums for a group in the edit screens
Description
As of right now, Forums only supports 1-to-1 group forum relationships. In the future, many-to-many should be allowed.
Source
File: bp-forums/groups.php
public function display_forums( $offset = 0 ) { global $wp_query; // Allow actions immediately before group forum output do_action( 'bbp_before_group_forum_display' ); // Load up Forums once $bbp = bbpress(); /** Query Resets ******************************************************/ // Forum data $forum_action = bp_action_variable( $offset ); $forum_ids = bbp_get_group_forum_ids( bp_get_current_group_id() ); $forum_id = array_shift( $forum_ids ); // Always load up the group forum bbp_has_forums( array( 'p' => $forum_id, 'post_parent' => null ) ); // Set the global forum ID $bbp->current_forum_id = $forum_id; // Assume forum query bbp_set_query_name( 'bbp_single_forum' ); ?> <!--<div id="bbpress-forums"> // *** Removed Due to duplicate id *** //--> <?php switch ( $forum_action ) : /** Single Forum **********************************************/ case false : case 'page' : // Strip the super stickies from topic query add_filter( 'bbp_get_super_stickies', array( $this, 'no_super_stickies' ), 10, 1 ); // Unset the super sticky option on topic form add_filter( 'bbp_get_topic_types', array( $this, 'unset_super_sticky' ), 10, 1 ); // Query forums and show them if they exist if ( bbp_forums() ) : // Setup the forum bbp_the_forum(); ?> <?php bbp_get_template_part( 'content', 'single-forum' ); // No forums found else : ?> <div class="info bp-feedback"> <span class="bp-icon" aria-hidden="true"></span> <p><?php esc_html_e( 'This group does not currently have a forum.', 'buddyboss' ); ?></p> </div> <?php endif; break; /** Single Topic **********************************************/ case $this->topic_slug : // hide the 'to front' admin links add_filter( 'bbp_get_topic_stick_link', array( $this, 'hide_super_sticky_admin_link' ), 10, 2 ); // Get the topic bbp_has_topics( array( 'name' => bp_action_variable( $offset + 1 ), 'posts_per_page' => 1, 'show_stickies' => false ) ); // If no topic, 404 if ( ! bbp_topics() ) { bp_do_404( bbp_get_forum_permalink( $forum_id ) ); ?> <h3 class="bbp-forum-title"><?php bbp_forum_title(); ?></h3> <?php bbp_get_template_part( 'feedback', 'no-topics' ); return; } // Setup the topic bbp_the_topic(); ?> <h3 class="bbp-topic-title"><?php bbp_topic_title(); ?></h3> <?php // Topic edit if ( bp_action_variable( $offset + 2 ) === bbp_get_edit_rewrite_id() ) : // Unset the super sticky link on edit topic template add_filter( 'bbp_get_topic_types', array( $this, 'unset_super_sticky' ), 10, 1 ); // Set the edit switches $wp_query->bbp_is_edit = true; $wp_query->bbp_is_topic_edit = true; // Setup the global forum ID $bbp->current_topic_id = get_the_ID(); // Merge if ( !empty( $_GET['action'] ) && 'merge' === $_GET['action'] ) : bbp_set_query_name( 'bbp_topic_merge' ); bbp_get_template_part( 'form', 'topic-merge' ); // Split elseif ( !empty( $_GET['action'] ) && 'split' === $_GET['action'] ) : bbp_set_query_name( 'bbp_topic_split' ); bbp_get_template_part( 'form', 'topic-split' ); // Edit else : bbp_set_query_name( 'bbp_topic_form' ); bbp_get_template_part( 'form', 'topic' ); endif; // Single Topic else: bbp_set_query_name( 'bbp_single_topic' ); bbp_get_template_part( 'content', 'single-topic' ); endif; break; /** Single Reply **********************************************/ case $this->reply_slug : // Get the reply bbp_has_replies( array( 'name' => bp_action_variable( $offset + 1 ), 'posts_per_page' => 1 ) ); // If no topic, 404 if ( ! bbp_replies() ) { bp_do_404( bbp_get_forum_permalink( $forum_id ) ); ?> <h3><?php bbp_forum_title(); ?></h3> <?php bbp_get_template_part( 'feedback', 'no-replies' ); return; } // Setup the reply bbp_the_reply(); ?> <h3><?php bbp_reply_title(); ?></h3> <?php if ( bp_action_variable( $offset + 2 ) === bbp_get_edit_rewrite_id() ) : // Set the edit switches $wp_query->bbp_is_edit = true; $wp_query->bbp_is_reply_edit = true; // Setup the global reply ID $bbp->current_reply_id = get_the_ID(); // Move if ( !empty( $_GET['action'] ) && ( 'move' === $_GET['action'] ) ) : bbp_set_query_name( 'bbp_reply_move' ); bbp_get_template_part( 'form', 'reply-move' ); // Edit else : bbp_set_query_name( 'bbp_reply_form' ); bbp_get_template_part( 'form', 'reply' ); endif; endif; break; endswitch; // Reset the query wp_reset_query(); ?> <!--</div>--> <?php // Allow actions immediately after group forum output do_action( 'bbp_after_group_forum_display' ); }
Changelog
Version | Description |
---|---|
bbPress (r3653) | Introduced. |
Questions?
We're always happy to help with code or other questions you might have! Search our developer docs, contact support, or connect with our sales team.