Show
Ignore:
Timestamp:
08/20/08 22:22:33 (5 months ago)
Author:
vollmerk
Message:

fix filter + paging and add sort by artist and album on song browse

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/lib/class/browse.class.php

    r1675 r1679  
    111111                } // end switch 
    112112 
     113                // If we've set a filter we need to reset the totals 
     114                self::reset_total();  
     115                self::set_start(0);  
     116 
    113117                return true;  
    114118         
     
    125129                self::reset_supplemental_objects();  
    126130                self::set_simple_browse(0);  
     131                self::set_start(0);  
    127132 
    128133        } // reset 
     
    277282                        case 'playlist_song':  
    278283                        case 'song':  
    279                                 $valid_array = array('title','year','track','time');  
     284                                $valid_array = array('title','year','track','time','album','artist');  
    280285                        break; 
    281286                        case 'artist':  
     
    333338        public static function set_join($type,$table,$source,$dest) {  
    334339 
    335                 $_SESSION['browse']['join'][self::$type] = strtoupper($type) . ' JOIN ' . $table . ' ON ' . $source . '=' . $dest;  
     340                $_SESSION['browse']['join'][self::$type] = array($table=>strtoupper($type) . ' JOIN ' . $table . ' ON ' . $source . '=' . $dest);  
    336341 
    337342        } // set_join 
     
    565570         */ 
    566571        private static function get_sort_sql() {  
    567  
     572                 
    568573                if (!is_array($_SESSION['browse']['sort'][self::$type])) { return ''; }  
    569574 
     
    600605         */ 
    601606        private static function get_join_sql() {  
    602  
     607                 
    603608                if (!is_array($_SESSION['browse']['join'][self::$type])) {  
    604609                        return '';  
     
    610615                        $sql .= $join . ' ';  
    611616                }  
    612          
     617 
    613618                return $sql;     
    614619 
     
    816821                                        case 'album':  
    817822                                                $sql = '`album`.`name`';  
    818                                                 self::set_join('left','`album`','`album`.`id`','`song`.`id`');  
     823                                                self::set_join('left','`album`','`album`.`id`','`song`.`album`');  
     824                                        break;  
     825                                        case 'artist':  
     826                                                $sql = '`artist`.`name`';  
     827                                                self::set_join('left','`artist`','`artist`.`id`','`song`.`artist`');  
    819828                                        break;  
    820829                                        default:  
     
    10801089                        $order_sql = rtrim($order_sql,"ORDER BY "); 
    10811090                        $order_sql = rtrim($order_sql,","); 
    1082                         $sql = $sql . $order_sql; 
     1091                        $sql = $sql . self::get_join_sql() . $order_sql; 
    10831092                } // if not simple 
    10841093