download.php (2760B)
1 <?php 2 class ModelAccountDownload extends Model { 3 public function getDownload($download_id) { 4 $implode = array(); 5 6 $order_statuses = $this->config->get('config_complete_status'); 7 8 foreach ($order_statuses as $order_status_id) { 9 $implode[] = "o.order_status_id = '" . (int)$order_status_id . "'"; 10 } 11 12 if ($implode) { 13 $query = $this->db->query("SELECT d.filename, d.mask FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op ON (o.order_id = op.order_id) LEFT JOIN " . DB_PREFIX . "product_to_download p2d ON (op.product_id = p2d.product_id) LEFT JOIN " . DB_PREFIX . "download d ON (p2d.download_id = d.download_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND (" . implode(" OR ", $implode) . ") AND d.download_id = '" . (int)$download_id . "'"); 14 15 return $query->row; 16 } else { 17 return; 18 } 19 } 20 21 public function getDownloads($start = 0, $limit = 20) { 22 if ($start < 0) { 23 $start = 0; 24 } 25 26 if ($limit < 1) { 27 $limit = 20; 28 } 29 30 $implode = array(); 31 32 $order_statuses = $this->config->get('config_complete_status'); 33 34 foreach ($order_statuses as $order_status_id) { 35 $implode[] = "o.order_status_id = '" . (int)$order_status_id . "'"; 36 } 37 38 if ($implode) { 39 $query = $this->db->query("SELECT DISTINCT d.download_id, o.order_id, o.date_added, dd.name, d.filename FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op ON (o.order_id = op.order_id) LEFT JOIN " . DB_PREFIX . "product_to_download p2d ON (op.product_id = p2d.product_id) LEFT JOIN " . DB_PREFIX . "download d ON (p2d.download_id = d.download_id) LEFT JOIN " . DB_PREFIX . "download_description dd ON (d.download_id = dd.download_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND dd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND (" . implode(" OR ", $implode) . ") ORDER BY o.date_added DESC LIMIT " . (int)$start . "," . (int)$limit); 40 41 return $query->rows; 42 } else { 43 return array(); 44 } 45 } 46 47 public function getTotalDownloads() { 48 $implode = array(); 49 50 $order_statuses = $this->config->get('config_complete_status'); 51 52 foreach ($order_statuses as $order_status_id) { 53 $implode[] = "o.order_status_id = '" . (int)$order_status_id . "'"; 54 } 55 56 if ($implode) { 57 $query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "order` o LEFT JOIN " . DB_PREFIX . "order_product op ON (o.order_id = op.order_id) LEFT JOIN " . DB_PREFIX . "product_to_download p2d ON (op.product_id = p2d.product_id) WHERE o.customer_id = '" . (int)$this->customer->getId() . "' AND (" . implode(" OR ", $implode) . ")"); 58 59 return $query->row['total']; 60 } else { 61 return 0; 62 } 63 } 64 }