* @copyright 2019 MyAAC * @link https://my-aac.org */ defined('MYAAC') or die('Direct access not allowed!'); $title = 'Settings'; require_once SYSTEM . 'clients.conf.php'; if (empty($_GET['plugin'])) { error('Please select plugin from left Panel.'); return; } $plugin = $_GET['plugin']; if($plugin != 'core') { $pluginSettings = Plugins::getPluginSettings($plugin); if (!$pluginSettings) { error('This plugin does not exist or does not have options defined.'); return; } $settingsFilePath = PLUGINS . $plugin . '/settings.php'; } else { $settingsFilePath = SYSTEM . 'settings.php'; } if (!file_exists($settingsFilePath)) { error('This plugin does not exist or does not have settings defined.'); return; } if($plugin === 'core') { $settingsFile = require $settingsFilePath; } else { $settingsFile = require $settingsFilePath; } if (!is_array($settingsFile)) { return; } if (isset($_POST['save'])) { $db->query('DELETE FROM `' . TABLE_PREFIX . 'settings` WHERE `plugin_name` = ' . $db->quote($plugin) . ';'); foreach ($_POST['settings'] as $key => $value) { try { $db->insert(TABLE_PREFIX . 'settings', ['plugin_name' => $plugin, 'key' => $key, 'value' => $value]); } catch (PDOException $error) { warning('Error while saving setting (' . $plugin . ' - ' . $key . '): ' . $error->getMessage()); } } $cache = Cache::getInstance(); if ($cache->enabled()) { $cache->delete('settings'); } success('Saved at ' . date('H:i')); } $title = ($plugin == 'core' ? 'Settings' : 'Plugin Settings - ' . $plugin); $query = 'SELECT `key`, `value` FROM `' . TABLE_PREFIX . 'settings` WHERE `plugin_name` = ' . $db->quote($plugin) . ';'; $query = $db->query($query); $settingsDb = []; if($query->rowCount() > 0) { foreach($query->fetchAll(PDO::FETCH_ASSOC) as $value) { $settingsDb[$value['key']] = $value['value']; } } ?>