1<?php 2class ModelToolUpload extends Model { 3 public function addUpload($name, $filename) { 4 $code = sha1(uniqid(mt_rand(), true)); 5 6 $this->db->query("INSERT INTO `" . DB_PREFIX . "upload` SET `name` = '" . $this->db->escape($name) . "', `filename` = '" . $this->db->escape($filename) . "', `code` = '" . $this->db->escape($code) . "', `date_added` = NOW()"); 7 8 return $code; 9 } 10 11 public function deleteUpload($upload_id) { 12 $this->db->query("DELETE FROM " . DB_PREFIX . "upload WHERE upload_id = '" . (int)$upload_id . "'"); 13 } 14 15 public function getUpload($upload_id) { 16 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "upload` WHERE upload_id = '" . (int)$upload_id . "'"); 17 18 return $query->row; 19 } 20 21 public function getUploadByCode($code) { 22 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "upload WHERE code = '" . $this->db->escape($code) . "'"); 23 24 return $query->row; 25 } 26 27 public function getUploads($data = array()) { 28 $sql = "SELECT * FROM " . DB_PREFIX . "upload"; 29 30 $implode = array(); 31 32 if (!empty($data['filter_name'])) { 33 $implode[] = "name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; 34 } 35 36 if (!empty($data['filter_filename'])) { 37 $implode[] = "filename LIKE '" . $this->db->escape($data['filter_filename']) . "%'"; 38 } 39 40 if (!empty($data['filter_date_added'])) { 41 $implode[] = "date_added = '" . $this->db->escape($data['filter_date_added']) . "%'"; 42 } 43 44 if ($implode) { 45 $sql .= " WHERE " . implode(" AND ", $implode); 46 } 47 48 $sort_data = array( 49 'name', 50 'filename', 51 'date_added' 52 ); 53 54 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 55 $sql .= " ORDER BY " . $data['sort']; 56 } else { 57 $sql .= " ORDER BY date_added"; 58 } 59 60 if (isset($data['order']) && ($data['order'] == 'DESC')) { 61 $sql .= " DESC"; 62 } else { 63 $sql .= " ASC"; 64 } 65 66 if (isset($data['start']) || isset($data['limit'])) { 67 if ($data['start'] < 0) { 68 $data['start'] = 0; 69 } 70 71 if ($data['limit'] < 1) { 72 $data['limit'] = 20; 73 } 74 75 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 76 } 77 78 $query = $this->db->query($sql); 79 80 return $query->rows; 81 } 82 83 public function getTotalUploads() { 84 $sql = "SELECT COUNT(*) AS total FROM " . DB_PREFIX . "upload"; 85 86 $implode = array(); 87 88 if (!empty($data['filter_name'])) { 89 $implode[] = "name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; 90 } 91 92 if (!empty($data['filter_filename'])) { 93 $implode[] = "filename LIKE '" . $this->db->escape($data['filter_filename']) . "%'"; 94 } 95 96 if (!empty($data['filter_date_added'])) { 97 $implode[] = "date_added = '" . $this->db->escape($data['filter_date_added']) . "'"; 98 } 99 100 if ($implode) { 101 $sql .= " WHERE " . implode(" AND ", $implode); 102 } 103 104 $query = $this->db->query($sql); 105 106 return $query->row['total']; 107 } 108}