extension.php (3148B)
1 <?php 2 class ModelSettingExtension extends Model { 3 public function getInstalled($type) { 4 $extension_data = array(); 5 6 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension` WHERE `type` = '" . $this->db->escape($type) . "' ORDER BY `code`"); 7 8 foreach ($query->rows as $result) { 9 $extension_data[] = $result['code']; 10 } 11 12 return $extension_data; 13 } 14 15 public function install($type, $code) { 16 $extensions = $this->getInstalled($type); 17 18 if (!in_array($code, $extensions)) { 19 $this->db->query("INSERT INTO `" . DB_PREFIX . "extension` SET `type` = '" . $this->db->escape($type) . "', `code` = '" . $this->db->escape($code) . "'"); 20 } 21 } 22 23 public function uninstall($type, $code) { 24 $this->db->query("DELETE FROM `" . DB_PREFIX . "extension` WHERE `type` = '" . $this->db->escape($type) . "' AND `code` = '" . $this->db->escape($code) . "'"); 25 $this->db->query("DELETE FROM `" . DB_PREFIX . "setting` WHERE `code` = '" . $this->db->escape($type . '_' . $code) . "'"); 26 } 27 28 public function addExtensionInstall($filename, $extension_download_id = 0) { 29 $this->db->query("INSERT INTO `" . DB_PREFIX . "extension_install` SET `filename` = '" . $this->db->escape($filename) . "', `extension_download_id` = '" . (int)$extension_download_id . "', `date_added` = NOW()"); 30 31 return $this->db->getLastId(); 32 } 33 34 public function deleteExtensionInstall($extension_install_id) { 35 $this->db->query("DELETE FROM `" . DB_PREFIX . "extension_install` WHERE `extension_install_id` = '" . (int)$extension_install_id . "'"); 36 } 37 38 public function getExtensionInstalls($start = 0, $limit = 10) { 39 if ($start < 0) { 40 $start = 0; 41 } 42 43 if ($limit < 1) { 44 $limit = 10; 45 } 46 47 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_install` ORDER BY date_added ASC LIMIT " . (int)$start . "," . (int)$limit); 48 49 return $query->rows; 50 } 51 52 public function getExtensionInstallByExtensionDownloadId($extension_download_id) { 53 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_install` WHERE `extension_download_id` = '" . (int)$extension_download_id . "'"); 54 55 return $query->row; 56 } 57 58 public function getTotalExtensionInstalls() { 59 $query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "extension_install`"); 60 61 return $query->row['total']; 62 } 63 64 public function addExtensionPath($extension_install_id, $path) { 65 $this->db->query("INSERT INTO `" . DB_PREFIX . "extension_path` SET `extension_install_id` = '" . (int)$extension_install_id . "', `path` = '" . $this->db->escape($path) . "', `date_added` = NOW()"); 66 } 67 68 public function deleteExtensionPath($extension_path_id) { 69 $this->db->query("DELETE FROM `" . DB_PREFIX . "extension_path` WHERE `extension_path_id` = '" . (int)$extension_path_id . "'"); 70 } 71 72 public function getExtensionPathsByExtensionInstallId($extension_install_id) { 73 $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_path` WHERE `extension_install_id` = '" . (int)$extension_install_id . "' ORDER BY `date_added` ASC"); 74 75 return $query->rows; 76 } 77 }