attribute_group.php (3542B)
1 <?php 2 class ModelCatalogAttributeGroup extends Model { 3 public function addAttributeGroup($data) { 4 $this->db->query("INSERT INTO " . DB_PREFIX . "attribute_group SET sort_order = '" . (int)$data['sort_order'] . "'"); 5 6 $attribute_group_id = $this->db->getLastId(); 7 8 foreach ($data['attribute_group_description'] as $language_id => $value) { 9 $this->db->query("INSERT INTO " . DB_PREFIX . "attribute_group_description SET attribute_group_id = '" . (int)$attribute_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "'"); 10 } 11 12 return $attribute_group_id; 13 } 14 15 public function editAttributeGroup($attribute_group_id, $data) { 16 $this->db->query("UPDATE " . DB_PREFIX . "attribute_group SET sort_order = '" . (int)$data['sort_order'] . "' WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 17 18 $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_group_description WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 19 20 foreach ($data['attribute_group_description'] as $language_id => $value) { 21 $this->db->query("INSERT INTO " . DB_PREFIX . "attribute_group_description SET attribute_group_id = '" . (int)$attribute_group_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "'"); 22 } 23 } 24 25 public function deleteAttributeGroup($attribute_group_id) { 26 $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_group WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 27 $this->db->query("DELETE FROM " . DB_PREFIX . "attribute_group_description WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 28 } 29 30 public function getAttributeGroup($attribute_group_id) { 31 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "attribute_group WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 32 33 return $query->row; 34 } 35 36 public function getAttributeGroups($data = array()) { 37 $sql = "SELECT * FROM " . DB_PREFIX . "attribute_group ag LEFT JOIN " . DB_PREFIX . "attribute_group_description agd ON (ag.attribute_group_id = agd.attribute_group_id) WHERE agd.language_id = '" . (int)$this->config->get('config_language_id') . "'"; 38 39 $sort_data = array( 40 'agd.name', 41 'ag.sort_order' 42 ); 43 44 if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { 45 $sql .= " ORDER BY " . $data['sort']; 46 } else { 47 $sql .= " ORDER BY agd.name"; 48 } 49 50 if (isset($data['order']) && ($data['order'] == 'DESC')) { 51 $sql .= " DESC"; 52 } else { 53 $sql .= " ASC"; 54 } 55 56 if (isset($data['start']) || isset($data['limit'])) { 57 if ($data['start'] < 0) { 58 $data['start'] = 0; 59 } 60 61 if ($data['limit'] < 1) { 62 $data['limit'] = 20; 63 } 64 65 $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; 66 } 67 68 $query = $this->db->query($sql); 69 70 return $query->rows; 71 } 72 73 public function getAttributeGroupDescriptions($attribute_group_id) { 74 $attribute_group_data = array(); 75 76 $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "attribute_group_description WHERE attribute_group_id = '" . (int)$attribute_group_id . "'"); 77 78 foreach ($query->rows as $result) { 79 $attribute_group_data[$result['language_id']] = array('name' => $result['name']); 80 } 81 82 return $attribute_group_data; 83 } 84 85 public function getTotalAttributeGroups() { 86 $query = $this->db->query("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attribute_group"); 87 88 return $query->row['total']; 89 } 90 }