<?PHP
/******************************************************
    latest_ebuilds class

- used to retreive the latest ebuild information
******************************************************/

class latest_ebuilds{
    
    var 
$data = array();
    
    function 
latest_ebuilds($day 0$keyword ''$end_of_day 0$period 1$user false$packages = array(), $in 'IN'){
        if(
$user){
            
$this->user_ebuilds($day$keyword$end_of_day$period$packages$in);
        }else{
            
$this->all_ebuilds($day$keyword$end_of_day$period);
        }
    }
    
    function 
all_ebuilds($day 0$keyword ''$end_of_day 0$period 1){
        
$this->data = array();
        
        if(
$day == 0$day mktime(0,0,0,date('m'), date('d'), date('Y'));
        if(
$end_of_day == 0)$end_of_day $day + (24*60*60*$period) - 1;
        
        
$sql_day date("Y-m-d H:i:s"$day);
        
$sql_end_of_day date("Y-m-d H:i:s"$end_of_day);
        
        
$sql "SELECT package_p, ebuild_p, ebuild_display, category_title, package_title, ebuild_description, `ebuild`.`_added`, ebuild_keywords
                FROM category, package, ebuild
                WHERE `ebuild`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day' AND package_f = package_p AND category_f = category_p
                ORDER BY ebuild_display 
                LIMIT 0, 1000"
;
        
        if(
$keyword != ''){
            
$keywords = new keywords();
            if(
$keywords->getId($keyword)){
                
$sql "CREATE TEMPORARY TABLE tmp_ebuild_keyword SELECT * FROM ebuild_keyword WHERE `keyword_f` = ".$keywords->getId($keyword)." ";
                
mysql_query($sql) or die(mysql_error());
                
$sql "SELECT package_p, ebuild_p, ebuild_display, category_title, package_title, ebuild_description, `ebuild`.`_added`, ebuild_keywords
                        FROM category, package, ebuild, tmp_ebuild_keyword
                        WHERE ebuild_f = ebuild_p AND package_f = package_p AND category_f = category_p  
                            AND `tmp_ebuild_keyword`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day'
                        ORDER BY ebuild_display 
                        LIMIT 0, 1000"
;
            }
        }
    
        
$packages = array();
        
$results mysql_query($sql) or die(mysql_error());
        while(
$row mysql_fetch_assoc($results)){
            
$this->data[] = $row;
            
$packages[] = $row['package_p'];
        }
        
        if(
$keyword != ''){
            
$sql "DROP TABLE IF EXISTS tmp_ebuild_keyword";
            
mysql_query($sql) or die(mysql_error());
        }
        
        if(
count($packages) > 0){
            
$sql "SELECT * FROM package_image WHERE package_f IN (".implode(','$packages).") ORDER BY _added ";
            
$results mysql_query($sql) or die(mysql_error());
            while(
$row mysql_fetch_assoc($results)){
                foreach(
$this->data as $key => $value){
                    if(
$value['package_p'] == $row['package_f']){
                        
$this->data[$key]['image_link'] = '/up_img/thumb/'.$row['package_image_p'].'.'.$row['image_ext'];
                    }
                }
            }
        }
    }
    
    function 
user_ebuilds($day 0$keyword ''$end_of_day 0$period 1$packages = array(), $in 'IN'){
        
$this->data = array();
        
        if(
count($packages) > 0){
            if(
$day == 0$day mktime(0,0,0,date('m'), date('d'), date('Y'));
            if(
$end_of_day == 0)$end_of_day $day + (24*60*60*$period) - 1;
        
            
$sql_day date("Y-m-d H:i:s"$day);
            
$sql_end_of_day date("Y-m-d H:i:s"$end_of_day);
        
            
/* $time_sql = " AND package_p {$in} (".implode(',', $packages).") AND `ebuild`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day' GROUP BY ebuild_f";
        
            if($keyword != ''){
                $keywords = new keywords();
                if($keywords->getId($keyword))
                    $time_sql = " AND package_p {$in} (".implode(',', $packages).") AND `keyword_f` = ".$keywords->getId($keyword)." AND `ebuild_keyword`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day' ";
            }
            
            $sql = "SELECT package_p, ebuild_p, ebuild_display, category_title, package_title, ebuild_description, `ebuild`.`_added`, ebuild_keywords
                    FROM category, package, ebuild, ebuild_keyword
                    WHERE category_f = category_p AND package_f = package_p AND ebuild_f = ebuild_p 
                        {$time_sql}
                    ORDER BY ebuild_display 
                    LIMIT 0, 1000";
            */ 
            
            
$sql "SELECT package_p, ebuild_p, ebuild_display, category_title, package_title, ebuild_description, `ebuild`.`_added`, ebuild_keywords
                    FROM category, package, ebuild
                    WHERE package_p {$in} ("
.implode(','$packages).") AND `ebuild`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day' AND package_f = package_p AND category_f = category_p
                    ORDER BY ebuild_display 
                    LIMIT 0, 1000"
;

            if(
$keyword != ''){
                
$keywords = new keywords();
                if(
$keywords->getId($keyword)){
                    
$sql "CREATE TEMPORARY TABLE tmp_ebuild_keyword SELECT * FROM ebuild_keyword WHERE `keyword_f` = ".$keywords->getId($keyword)." ";
                    
mysql_query($sql) or die(mysql_error());
                    
$sql "SELECT package_p, ebuild_p, ebuild_display, category_title, package_title, ebuild_description, `ebuild`.`_added`, ebuild_keywords
                            FROM category, package, ebuild, tmp_ebuild_keyword
                            WHERE package_p {$in} ("
.implode(','$packages).") AND ebuild_f = ebuild_p AND package_f = package_p AND category_f = category_p  
                                AND `tmp_ebuild_keyword`.`_added` BETWEEN '$sql_day' AND '$sql_end_of_day'
                            ORDER BY ebuild_display 
                            LIMIT 0, 1000"
;
                }
            }

            
$packages = array();
            
$results mysql_query($sql) or die(mysql_error());
            while(
$row mysql_fetch_assoc($results)){
                
$this->data[] = $row;
                
$packages[] = $row['package_p'];
            }
            
            if(
$keyword != ''){
                
$sql "DROP TABLE IF EXISTS tmp_ebuild_keyword";
                
mysql_query($sql) or die(mysql_error());
            }
            
            if(
count($packages) > 0){
                
$sql "SELECT * FROM package_image WHERE package_f IN (".implode(','$packages).") ORDER BY _added ";
                
$results mysql_query($sql) or die(mysql_error());
                while(
$row mysql_fetch_assoc($results)){
                    foreach(
$this->data as $key => $value){
                        if(
$value['package_p'] == $row['package_f']){
                            
$this->data[$key]['image_link'] = '/up_img/thumb/'.$row['package_image_p'].'.'.$row['image_ext'];
                        }
                    }
                }
            }
        }
    }
}

?>