Skip to:
Content
Pages
Categories
Search
Top
Bottom

Change loop-forums


  • nirzol
    Participant

    @nirzol

    Hello

    I change the loop-forums to get something like this =

    Category 1
    sub category 1.1
    sub category 1.2
    sub category 1.2.1

    Category 2
    sub category 2.1
    sub category 2.2

    It works like a charm on the index page but I click on category 1 (or category 1.1 or another) I get :

    Category 1
    **** nothing *****
    Category 1
    sub category 1.2.1

    What I want is : when i click on category 1 etc….
    Category 1
    sub category 1.1
    sub category 1.2
    sub category 1.2.1

    Can someone help me?

    The code :

    <?php
    /**
     * Forums Loop
     *
     * @package bbPress
     * @subpackage Theme
     */
    ?>
    
    <?php do_action('bbp_template_before_forums_loop'); ?>
    
    <?php while ( bbp_forums() ) : bbp_the_forum();?>
    <?php
        /* We print the header only if we want to show a category or if it's the first item of a no-parent forum list */
        if (bbp_is_forum_category() OR ! $bbp_forums_noheader) {
            ?>
    
            <ul id="forums-list-<?php bbp_forum_id(); ?>" class="bbp-forums">
    
                <li class="bbp-header">
    
                    <ul class="forum-titles">
                        <li class="bbp-forum-info">
                            <?php if (bbp_is_forum_category()) { ?>
                                <a class="bbp-forum-title" href="<?php bbp_forum_permalink(bbp_get_forum_parent_id()); ?>">
                                    <?php bbp_forum_title(bbp_get_forum_parent_id()); ?>
                                </a>
                            <?php } else {
                                _e('Forum', 'bbpress');
                                } ?>
                        </li>
                        <li class="bbp-forum-topic-count"><?php _e('Topics', 'bbpress'); ?></li>
                        <li class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? _e('Replies', 'bbpress') : _e('Posts', 'bbpress'); ?></li>
                        <li class="bbp-forum-freshness"><?php _e('Freshness', 'bbpress'); ?></li>
                        <li class="bbp-forum-freshness-avatar"></li>
                    </ul>
    
                </li><!-- .bbp-header -->
        <?php } ?>
    
            <li class="bbp-body">
    
                <?php
                /* If the forum is a category, we're gonna make another loop to show its subforums and sub-subforums as if those were forums */
                if (bbp_is_forum_category()) {
    
                    $temp_query = clone bbpress()->forum_query;
                    bbp_has_forums('post_parent=' . bbp_get_forum_id());
                    while (bbp_forums()) : bbp_the_forum();
                        bbp_get_template_part('loop', 'single-forum');
                    endwhile;
                    bbpress()->forum_query = clone $temp_query;
                }
                else /* Otherwise, we print the forums the normal way */ {
    
                    bbp_get_template_part('loop', 'single-forum');
                    $bbp_forums_noheader = 1; /* This prevents the header part to be printed again on next post in the loop */
                }
                ?>
    
            </li><!-- .bbp-body -->
    
        <?php
        /* Prints the footer only if :
          - it's a category
          - or if it's the last forum of a no-parent forum list
          - or if the next forum in the loop is a category */
    
        if (bbp_is_forum_category()
            OR ( bbpress()->forum_query->current_post + 1) == bbpress()->forum_query->post_count
            OR bbp_is_forum_category(bbpress()->forum_query->posts[bbpress()->forum_query->current_post + 1]->ID)) {
            ?>
    
                <li class="bbp-footer">
    
                    <div class="tr">
                        <p class="td colspan4">&nbsp;</p>
                    </div><!-- .tr -->
    
                </li><!-- .bbp-footer -->
    
            </ul><!-- .forums-directory -->
    
            <?php unset($bbp_forums_noheader); /* Needed if we have 2+ no-parent forums with at least 1 category between them */
        }
        ?>
    
    <?php endwhile; ?>
    
    <?php do_action('bbp_template_after_forums_loop'); ?>
    
Viewing 1 replies (of 1 total)

  • nirzol
    Participant

    @nirzol

    Ok I find a way but I am not happy about that but it works….
    You can see live here : http://sakifo.gamers.re/forums/

    If someone have a better solution, I put that there :

    
    <?php
    /**
     * Forums Loop
     *
     * @package bbPress
     * @subpackage Theme
     */
    ?>
    
    <?php do_action('bbp_template_before_forums_loop'); ?>
    
    <?php
    if(bbp_get_forum_id()){
       ?>
    <ul id="forums-list-<?php bbp_forum_id(); ?>" class="bbp-forums">
    
    	<li class="bbp-header">
    
    		<ul class="forum-titles">
    			<li class="bbp-forum-info"><?php echo bbp_forum_title(); ?></li>
    			<li class="bbp-forum-topic-count"><?php _e( 'Topics', 'bbpress' ); ?></li>
    			<li class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? _e( 'Replies', 'bbpress' ) : _e( 'Posts', 'bbpress' ); ?></li>
    			<li class="bbp-forum-freshness"><?php _e( 'Freshness', 'bbpress' ); ?></li>
    		</ul>
    
    	</li><!-- .bbp-header -->
    
    	<li class="bbp-body">
    
    		<?php while ( bbp_forums() ) : bbp_the_forum(); ?>
    
    			<?php bbp_get_template_part( 'loop', 'single-forum' ); ?>
    
    		<?php endwhile; ?>
    
    	</li><!-- .bbp-body -->
    
    	<li class="bbp-footer">
    
    		<div class="tr">
    			<p class="td colspan4">&nbsp;</p>
    		</div><!-- .tr -->
    
    	</li><!-- .bbp-footer -->
    
    </ul><!-- .forums-directory -->
    <?php
    }
    else {
    ?>
    
    <?php while ( bbp_forums() ) : bbp_the_forum();?>
    <?php
        /* We print the header only if we want to show a category or if it's the first item of a no-parent forum list */
        if (bbp_is_forum_category() OR ! $bbp_forums_noheader) {
            ?>
    
            <ul id="forums-list-<?php bbp_forum_id(); ?>" class="bbp-forums">
    
                <li class="bbp-header">
    
                    <ul class="forum-titles">
                        <li class="bbp-forum-info">
                            <?php if (bbp_is_forum_category()) { ?>
                                <a class="bbp-forum-title" href="<?php bbp_forum_permalink(bbp_get_forum_parent_id()); ?>">
                                    <?php bbp_forum_title(bbp_get_forum_parent_id()); ?>
                                </a>
                            <?php } else {
                                _e('Forum', 'bbpress');
                            } ?>
                        </li>
                        <li class="bbp-forum-topic-count"><?php _e('Topics', 'bbpress'); ?></li>
                        <li class="bbp-forum-reply-count"><?php bbp_show_lead_topic() ? _e('Replies', 'bbpress') : _e('Posts', 'bbpress'); ?></li>
                        <li class="bbp-forum-freshness"><?php _e('Freshness', 'bbpress'); ?></li>
                        <li class="bbp-forum-freshness-avatar"></li>
                    </ul>
    
                </li><!-- .bbp-header -->
        <?php } ?>
    
            <li class="bbp-body">
    
                <?php
                /* If the forum is a category, we're gonna make another loop to show its subforums and sub-subforums as if those were forums */
                if (bbp_is_forum_category()) {
    
                    $temp_query = clone bbpress()->forum_query;
                    bbp_has_forums('post_parent=' . bbp_get_forum_id());
                    while (bbp_forums()) : bbp_the_forum();
                        bbp_get_template_part('loop', 'single-forum');
                    endwhile;
                    bbpress()->forum_query = clone $temp_query;
                }
                else /* Otherwise, we print the forums the normal way */ {
    
                    bbp_get_template_part('loop', 'single-forum');
                    $bbp_forums_noheader = 1; /* This prevents the header part to be printed again on next post in the loop */
                }
                ?>
    
            </li><!-- .bbp-body -->
    
        <?php
        /* Prints the footer only if :
          - it's a category
          - or if it's the last forum of a no-parent forum list
          - or if the next forum in the loop is a category */
    
        if (bbp_is_forum_category()
            OR ( bbpress()->forum_query->current_post + 1) == bbpress()->forum_query->post_count
            OR bbp_is_forum_category(bbpress()->forum_query->posts[bbpress()->forum_query->current_post + 1]->ID)) {
            ?>
    
                <li class="bbp-footer">
    
                    <div class="tr">
                        <p class="td colspan4">&nbsp;</p>
                    </div><!-- .tr -->
    
                </li><!-- .bbp-footer -->
    
            </ul><!-- .forums-directory -->
    
            <?php unset($bbp_forums_noheader); /* Needed if we have 2+ no-parent forums with at least 1 category between them */
        }
        ?>
    
    <?php endwhile; }?>
    
    <?php do_action('bbp_template_after_forums_loop'); ?>
    
    
Viewing 1 replies (of 1 total)
  • You must be logged in to reply to this topic.
Skip to toolbar