Skip to:
Content

BuddyPress.org

Ticket #3059: bbpress-3059.1.diff

File bbpress-3059.1.diff, 1.4 KB (added by boonebgorges, 13 years ago)
  • bb-includes/class.bb-query.php

     
    201201//                      'page',         // Defaults to global or number in URI
    202202//                      'per_page',     // Defaults to page_topics
    203203                        'tag_id',       // one tag ID
    204                         'favorites'     // one user ID
     204                        'favorites',    // one user ID,
     205                        'offset',       // first item to query
     206                        'number'        // number of items to retrieve
    205207                );
    206208
    207209                $parse_ints = array(
     
    718720                        $bits['order_by'] .= " $q[order]";
    719721                else
    720722                        $bits['order_by'] .= " DESC";
    721 
    722                 if ( !$q['per_page'] )
    723                         $q['per_page'] = (int) bb_get_option( 'page_topics' );
    724 
     723               
    725724                $bits['limit'] = '';
    726                 if ( $q['per_page'] > 0 ) :
    727                         if ( $q['page'] > 1 )
    728                                 $bits['limit'] .= $q['per_page'] * ( $q['page'] - 1 ) . ", ";
    729                         $bits['limit'] .= $q['per_page'];
    730                 endif;
    731 
     725               
     726                if ( !empty( $q['offset'] ) && !empty( $q['number'] ) ) {
     727                        // When offset and number are provided, we skip per_page and limit checks
     728                        $bits['limit'] .= $q['offset'] . ", " . $q['number'];
     729                } else {
     730                        if ( !$q['per_page'] )
     731                                $q['per_page'] = (int) bb_get_option( 'page_topics' );
     732       
     733                        if ( $q['per_page'] > 0 ) :
     734                                if ( $q['page'] > 1 )
     735                                        $bits['limit'] .= $q['per_page'] * ( $q['page'] - 1 ) . ", ";
     736                                $bits['limit'] .= $q['per_page'];
     737                        endif;
     738                }
     739               
    732740                $name = "get_{$this->type}s_";
    733741
    734742                // Unfiltered