aboutsummaryrefslogtreecommitdiffstats
path: root/public/admin/model/setting/extension.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/admin/model/setting/extension.php')
-rw-r--r--public/admin/model/setting/extension.php77
1 files changed, 77 insertions, 0 deletions
diff --git a/public/admin/model/setting/extension.php b/public/admin/model/setting/extension.php
new file mode 100644
index 0000000..4c42f0e
--- /dev/null
+++ b/public/admin/model/setting/extension.php
@@ -0,0 +1,77 @@
+<?php
+class ModelSettingExtension extends Model {
+ public function getInstalled($type) {
+ $extension_data = array();
+
+ $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension` WHERE `type` = '" . $this->db->escape($type) . "' ORDER BY `code`");
+
+ foreach ($query->rows as $result) {
+ $extension_data[] = $result['code'];
+ }
+
+ return $extension_data;
+ }
+
+ public function install($type, $code) {
+ $extensions = $this->getInstalled($type);
+
+ if (!in_array($code, $extensions)) {
+ $this->db->query("INSERT INTO `" . DB_PREFIX . "extension` SET `type` = '" . $this->db->escape($type) . "', `code` = '" . $this->db->escape($code) . "'");
+ }
+ }
+
+ public function uninstall($type, $code) {
+ $this->db->query("DELETE FROM `" . DB_PREFIX . "extension` WHERE `type` = '" . $this->db->escape($type) . "' AND `code` = '" . $this->db->escape($code) . "'");
+ $this->db->query("DELETE FROM `" . DB_PREFIX . "setting` WHERE `code` = '" . $this->db->escape($type . '_' . $code) . "'");
+ }
+
+ public function addExtensionInstall($filename, $extension_download_id = 0) {
+ $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()");
+
+ return $this->db->getLastId();
+ }
+
+ public function deleteExtensionInstall($extension_install_id) {
+ $this->db->query("DELETE FROM `" . DB_PREFIX . "extension_install` WHERE `extension_install_id` = '" . (int)$extension_install_id . "'");
+ }
+
+ public function getExtensionInstalls($start = 0, $limit = 10) {
+ if ($start < 0) {
+ $start = 0;
+ }
+
+ if ($limit < 1) {
+ $limit = 10;
+ }
+
+ $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_install` ORDER BY date_added ASC LIMIT " . (int)$start . "," . (int)$limit);
+
+ return $query->rows;
+ }
+
+ public function getExtensionInstallByExtensionDownloadId($extension_download_id) {
+ $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_install` WHERE `extension_download_id` = '" . (int)$extension_download_id . "'");
+
+ return $query->row;
+ }
+
+ public function getTotalExtensionInstalls() {
+ $query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "extension_install`");
+
+ return $query->row['total'];
+ }
+
+ public function addExtensionPath($extension_install_id, $path) {
+ $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()");
+ }
+
+ public function deleteExtensionPath($extension_path_id) {
+ $this->db->query("DELETE FROM `" . DB_PREFIX . "extension_path` WHERE `extension_path_id` = '" . (int)$extension_path_id . "'");
+ }
+
+ public function getExtensionPathsByExtensionInstallId($extension_install_id) {
+ $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "extension_path` WHERE `extension_install_id` = '" . (int)$extension_install_id . "' ORDER BY `date_added` ASC");
+
+ return $query->rows;
+ }
+} \ No newline at end of file