From ee0ebff76a920bfe7e1da39d4cc9bfbb4324afe0 Mon Sep 17 00:00:00 2001 From: Haitem Date: Wed, 9 Dec 2020 14:30:41 +0100 Subject: [PATCH] first part of plugin setting --- app/Bootstrap.php | 13 +++++++++++-- app/models/managers/SettingsManager.php | 18 +++++++++--------- app/views/Setting.php | 20 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/app/Bootstrap.php b/app/Bootstrap.php index c0b6fe2..76e3ef6 100644 --- a/app/Bootstrap.php +++ b/app/Bootstrap.php @@ -5,11 +5,20 @@ ini_set( 'display_errors','1'); //setup parse_str($_SERVER['QUERY_STRING'], $params); -$urlSes = str_replace((!empty ($params['url']) ? $params['url'] : ""), "", str_replace('https://' . $_SERVER['HTTP_HOST'], "", $_SERVER['REQUEST_URI'])); +if (defined ("BASEDIR")) { + $urlSes = BASEDIR; +} else { + $urlSes = str_replace((!empty ($params['url']) ? $params['url'] : ""), "", str_replace('https://' . $_SERVER['HTTP_HOST'], "", $_SERVER['REQUEST_URI'])); +} +if (defined ("BASEDIR") && defined ("BASEURL")) { + $domain = str_replace("http://", "", str_replace("https://", "", str_replace(BASEDIR, "", BASEURL))); +} else { + $domain = str_replace("/var/www/", "", $_SERVER['DOCUMENT_ROOT']); +} session_set_cookie_params( 1209600, $urlSes, - str_replace("/var/www/", "", $_SERVER['DOCUMENT_ROOT']), + $domain, true, true ); diff --git a/app/models/managers/SettingsManager.php b/app/models/managers/SettingsManager.php index 6d4773d..7ff3424 100644 --- a/app/models/managers/SettingsManager.php +++ b/app/models/managers/SettingsManager.php @@ -4,20 +4,20 @@ class SettingsManager{ return Db::loadAll ("SELECT * FROM settings"); } - static function getByName($settingName, $group = '') { - if ($group != '') return Db::loadOne("SELECT * FROM settings WHERE name = ? AND group = ?", array($settingName, $group)); + static function getByName($settingName, $type = '') { + if ($type != '') return Db::loadOne("SELECT * FROM settings WHERE name = ? AND type = ?", array($settingName, $type)); return Db::loadOne("SELECT * FROM settings WHERE name = ?", array($settingName)); } - static function getSettingGroup($group) { - return Db::loadAll("SELECT * FROM settings WHERE group = ?", array($group)); + static function getSettingGroup($type) { + return Db::loadAll("SELECT * FROM settings WHERE type=?", array($type)); } - public static function create ($name, $value, $group = '') { + public static function create ($name, $value, $type = '') { $setting = array ( 'name' => $name, 'value' => $value, - 'group' => $group, + 'type' => $type, ); try { Db::add ('settings', $setting); @@ -27,9 +27,9 @@ class SettingsManager{ } } - public static function update ($name, $value, $group = '') { - if ($this.getByName($name)){ - $this->create($name, $value, $group); + public static function update ($name, $value, $type = '') { + if (self::getByName($name)){ + self::create($name, $value, $type); } else { try { Db::edit ('settings', [ diff --git a/app/views/Setting.php b/app/views/Setting.php index 8ecf318..547a016 100644 --- a/app/views/Setting.php +++ b/app/views/Setting.php @@ -56,7 +56,27 @@ class Setting extends Template $rooms = RoomManager::getAllRooms(); $template->prepare('rooms', $rooms); + $settingsManager = new SettingsManager(); + $dir = $_SERVER['DOCUMENT_ROOT'] . BASEDIR . 'app/plugins/'; + $pluginsFiles = array_diff (scandir ($dir), ['..', '.']); + $plugins = array (); + + foreach ($pluginsFiles as $key => $pluginFile) { + $status = (strpos ($pluginFile, "!") !== false ? false : true); + if ($status) { + $plugins[$key]['name'] = str_replace ("!", "", str_replace (".php", "", $pluginFile)); + $plugins[$key]['slug'] = strtolower ($plugins[$key]['name']); + $result = $settingsManager->getSettingGroup($plugins[$key]['slug']); + if (count ($result) > 0) { + $plugins[$key]['settings'] = $result; + } + } + } + + $plugins = Utilities::sortArrayByKey($plugins, 'slug', "desc"); + + $template->prepare('pluginsSettings', $plugins); $template->render(); }