manufacturer.php (5600B)
1 <?php 2 class ModelCatalogManufacturer extends Model { 3 public function addManufacturer($data) { 4 $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer SET name = '" . $this->db->escape($data['name']) . "', sort_order = '" . (int)$data['sort_order'] . "'"); 5 6 $manufacturer_id = $this->db->getLastId(); 7 8 if (isset($data['image'])) { 9 $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET image = '" . $this->db->escape($data['image']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 10 } 11 12 if (isset($data['manufacturer_store'])) { 13 foreach ($data['manufacturer_store'] as $store_id) { 14 $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_to_store SET manufacturer_id = '" . (int)$manufacturer_id . "', store_id = '" . (int)$store_id . "'"); 15 } 16 } 17 18 // SEO URL 19 if (isset($data['manufacturer_seo_url'])) { 20 foreach ($data['manufacturer_seo_url'] as $store_id => $language) { 21 foreach ($language as $language_id => $keyword) { 22 if (!empty($keyword)) { 23 $this->db->query("INSERT INTO " . DB_PREFIX . "seo_url SET store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', query = 'manufacturer_id=" . (int)$manufacturer_id . "', keyword = '" . $this->db->escape($keyword) . "'"); 24 } 25 } 26 } 27 } 28 29 $this->cache->delete('manufacturer'); 30 31 return $manufacturer_id; 32 } 33 34 public function editManufacturer($manufacturer_id, $data) { 35 $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET name = '" . $this->db->escape($data['name']) . "', sort_order = '" . (int)$data['sort_order'] . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 36 37 if (isset($data['image'])) { 38 $this->db->query("UPDATE " . DB_PREFIX . "manufacturer SET image = '" . $this->db->escape($data['image']) . "' WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 39 } 40 41 $this->db->query("DELETE FROM " . DB_PREFIX . "manufacturer_to_store WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 42 43 if (isset($data['manufacturer_store'])) { 44 foreach ($data['manufacturer_store'] as $store_id) { 45 $this->db->query("INSERT INTO " . DB_PREFIX . "manufacturer_to_store SET manufacturer_id = '" . (int)$manufacturer_id . "', store_id = '" . (int)$store_id . "'"); 46 } 47 } 48 49 $this->db->query("DELETE FROM `" . DB_PREFIX . "seo_url` WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'"); 50 51 if (isset($data['manufacturer_seo_url'])) { 52 foreach ($data['manufacturer_seo_url'] as $store_id => $language) { 53 foreach ($language as $language_id => $keyword) { 54 if (!empty($keyword)) { 55 $this->db->query("INSERT INTO `" . DB_PREFIX . "seo_url` SET store_id = '" . (int)$store_id . "', language_id = '" . (int)$language_id . "', query = 'manufacturer_id=" . (int)$manufacturer_id . "', keyword = '" . $this->db->escape($keyword) . "'"); 56 } 57 } 58 } 59 } 60 61 $this->cache->delete('manufacturer'); 62 } 63 64 public function deleteManufacturer($manufacturer_id) { 65 $this->db->query("DELETE FROM `" . DB_PREFIX . "manufacturer` WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 66 $this->db->query("DELETE FROM `" . DB_PREFIX . "manufacturer_to_store` WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 67 $this->db->query("DELETE FROM `" . DB_PREFIX . "seo_url` WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'"); 68 69 $this->cache->delete('manufacturer'); 70 } 71 72 public function getManufacturer($manufacturer_id) { 73 $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 74 75 return $query->row; 76 } 77 78 public function getManufacturers($data = array()) { 79 $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer"; 80 81 if (!empty($data['filter_name'])) { 82 $sql .= " WHERE name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; 83 } 84 85 $sort_data = array( 86 'name', 87 'sort_order' 88 ); 89 90 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 91 $sql .= " ORDER BY " . $data['sort']; 92 } else { 93 $sql .= " ORDER BY name"; 94 } 95 96 if (isset($data['order']) && ($data['order'] == 'DESC')) { 97 $sql .= " DESC"; 98 } else { 99 $sql .= " ASC"; 100 } 101 102 if (isset($data['start']) || isset($data['limit'])) { 103 if ($data['start'] < 0) { 104 $data['start'] = 0; 105 } 106 107 if ($data['limit'] < 1) { 108 $data['limit'] = 20; 109 } 110 111 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 112 } 113 114 $query = $this->db->query($sql); 115 116 return $query->rows; 117 } 118 119 public function getManufacturerStores($manufacturer_id) { 120 $manufacturer_store_data = array(); 121 122 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_store WHERE manufacturer_id = '" . (int)$manufacturer_id . "'"); 123 124 foreach ($query->rows as $result) { 125 $manufacturer_store_data[] = $result['store_id']; 126 } 127 128 return $manufacturer_store_data; 129 } 130 131 public function getManufacturerSeoUrls($manufacturer_id) { 132 $manufacturer_seo_url_data = array(); 133 134 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "seo_url WHERE query = 'manufacturer_id=" . (int)$manufacturer_id . "'"); 135 136 foreach ($query->rows as $result) { 137 $manufacturer_seo_url_data[$result['store_id']][$result['language_id']] = $result['keyword']; 138 } 139 140 return $manufacturer_seo_url_data; 141 } 142 143 public function getTotalManufacturers() { 144 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "manufacturer"); 145 146 return $query->row['total']; 147 } 148 }