Skip to:
Content

BuddyPress.org

Changeset 2194 for trunk/bp-forums.php


Ignore:
Timestamp:
12/17/2009 12:24:10 PM (16 years ago)
Author:
apeatling
Message:

Fixing forum filtering and added "My Topics" tab to the forums directory.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-forums.php

    r2168 r2194  
    128128}
    129129
    130 function bp_forums_get_forum_topicpost_count( $forum_id ) {
    131     global $wpdb, $bbdb;
    132 
    133     do_action( 'bbpress_init' );
    134 
    135     /* Need to find a bbPress function that does this */
    136     return $wpdb->get_results( $wpdb->prepare( "SELECT topics, posts from {$bbdb->forums} WHERE forum_id = %d", $forum_id ) );
    137 }
    138 
    139130/* Topic Functions */
    140131
     
    147138        'type' => 'newest',
    148139        'forum_id' => false,
     140        'user_id' => false,
    149141        'page' => 1,
    150142        'per_page' => 15,
     
    159151    switch ( $type ) {
    160152        case 'newest':
    161             $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'per_page' => $per_page, 'page' => $page, 'number' => $per_page, 'exclude' => $exclude, 'topic_title' => $filter, 'sticky' => $show_stickies ), 'get_latest_topics' );
    162             $topics = $query->results;
    163         break;
    164 
    165         case 'popular':
    166             $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_posts', 'topic_title' => $filter, 'sticky' => $show_stickies ) );
     153            $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'topic_author_id' => $user_id, 'per_page' => $per_page, 'page' => $page, 'number' => $per_page, 'exclude' => $exclude, 'topic_title' => $filter, 'sticky' => $show_stickies ), 'get_latest_topics' );
    167154            $topics =& $query->results;
    168155        break;
    169156
    170         case 'unreplied':
    171             $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'post_count' => 1, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_time', 'topic_title' => $filter, 'sticky' => $show_stickies ) );
     157        case 'popular':
     158            $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'topic_author_id' => $user_id, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_posts', 'topic_title' => $filter, 'sticky' => $show_stickies ) );
    172159            $topics =& $query->results;
    173160        break;
    174161
    175         case 'personal':
    176             $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'per_page' => $per_page, 'page' => $page, 'topic_author_id' => $bp->loggedin_user->id, 'order_by' => 't.topic_time', 'topic_title' => $filter, 'sticky' => $show_stickies ), 'get_recent_user_threads' );
     162        case 'unreplied':
     163            $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'topic_author_id' => $user_id, 'post_count' => 1, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_time', 'topic_title' => $filter, 'sticky' => $show_stickies ) );
    177164            $topics =& $query->results;
    178165        break;
    179166
    180167        case 'tag':
    181             $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'tag' => $filter, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_time', 'sticky' => $show_stickies ) );
     168            $query = new BB_Query( 'topic', array( 'forum_id' => $forum_id, 'topic_author_id' => $user_id, 'tag' => $filter, 'per_page' => $per_page, 'page' => $page, 'order_by' => 't.topic_time', 'sticky' => $show_stickies ) );
    182169            $topics =& $query->results;
    183170        break;
     
    319306}
    320307
     308function bp_forums_total_topic_count() {
     309    do_action( 'bbpress_init' );
     310
     311    $query = new BB_Query( 'topic', array( 'page' => 1, 'per_page' => false, 'count' => true ) );
     312    return $query->count;
     313}
     314
     315function bp_forums_total_topic_count_for_user( $user_id = false ) {
     316    global $bp;
     317
     318    do_action( 'bbpress_init' );
     319
     320    if ( !$user_id )
     321        $user_id = ( $bp->displayed_user->id ) ? $bp->displayed_user->id : $bp->loggedin_user->id;
     322
     323    $query = new BB_Query( 'topic', array( 'topic_author_id' => $user_id, 'page' => 1, 'per_page' => false, 'count' => true ) );
     324    return $query->count;
     325}
     326
    321327/* Post Functions */
    322328
Note: See TracChangeset for help on using the changeset viewer.