Show
Ignore:
Timestamp:
04/15/08 06:44:48 (20 months ago)
Author:
takayama
Message:

Implemented BugId:72216
* Implemented offset attribute to MTComments

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • branches/release-35/php/lib/mtdb_base.php

    r1800 r1911  
    20042004        } 
    20052005 
    2006         $order = 'desc'; 
     2006        $order = $query_order = 'desc'; 
    20072007        if (isset($args['sort_order'])) { 
    20082008            if ($args['sort_order'] == 'ascend') { 
    2009                 $order = 'asc'; 
     2009                $order = $query_order = 'asc'; 
    20102010            } 
    20112011        } elseif (isset($blog) && isset($blog['blog_sort_order_comments'])) { 
    20122012            if ($blog['blog_sort_order_comments'] == 'ascend') { 
    2013                 $order = 'asc'; 
    2014             } 
    2015         } 
    2016         if ($order == 'asc' && $args['lastn']) { 
     2013                $order = $query_order = 'asc'; 
     2014            } 
     2015        } 
     2016        if ($order == 'asc' && (isset($args['lastn']) || isset($args['offset']))) { 
    20172017            $reorder = 1; 
    2018             $order = 'desc'; 
     2018            $query_order = 'desc'; 
    20192019        } 
    20202020 
     
    20412041            $limit = $args['limit']; 
    20422042        if (isset($args['offset'])) 
    2043             $limit = $args['offset']; 
     2043            $offset = $args['offset']; 
    20442044        if (count($filters)) { 
    20452045            $post_select_limit = $limit; 
     
    20582058                   $entry_filter 
    20592059                   $blog_filter 
    2060              order by comment_created_on $order 
     2060             order by comment_created_on $query_order 
    20612061                   <LIMIT>"; 
    20622062        $sql = $this->apply_limit_sql($sql, $limit, $offset); 
     2063 
    20632064        # Fetch resultset 
    20642065        $result = $this->query_start($sql); 
     
    20662067 
    20672068        $comments = array(); 
     2069        $j = 0; 
    20682070        while (true) { 
    20692071            $e = $this->query_fetch(ARRAY_A); 
    2070             if ($offset && ($j++ < $offset)) continue; 
    20712072            if (!isset($e)) break; 
    20722073            if (count($filters)) { 
     
    20742075                    if (!$f($e, $ctx)) continue 2; 
    20752076                } 
     2077                if ($post_select_offset && ($j++ < $post_select_offset)) continue; 
     2078                if (($post_select_limit > 0) && (count($comments) >= $post_select_limit)) break; 
    20762079            } 
    20772080            $comments[] = $e; 
    2078             if (($limit > 0) && (count($comments) >= $limit)) break; 
    20792081        } 
    20802082 
     
    21242126            return array(); 
    21252127 
    2126         if ($reorder) {  // lastn and ascending sort 
     2128        if ($reorder && !isset($args['sort_by'])) {  // lastn and ascending sort 
    21272129            $asc_created_on = create_function('$a,$b', 'return strcmp($a["comment_created_on"], $b["comment_created_on"]);'); 
    21282130            usort($comments, $asc_created_on);