* @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']; } } ?>

' . ($type ? 'Yes' : 'No') . ' '; }; $i = 0; $j = 0; foreach($settingsFile as $key => $setting) { if ($setting['type'] === 'category') { if ($j++ !== 0) { echo '
'; } ?>
'; } ?>

Name Value Description
'; } else if($setting['type'] === 'textarea') { echo ''; } if ($setting['type'] === 'options') { if ($setting['options'] === '$templates') { $templates = []; foreach (get_templates() as $value) { $templates[$value] = $value; } $setting['options'] = $templates; } else if($setting['options'] === '$clients') { $clients = []; foreach((array)config('clients') as $client) { $client_version = (string)($client / 100); if(strpos($client_version, '.') === false) $client_version .= '.0'; $clients[$client] = $client_version; } $setting['options'] = $clients; } else { if (is_string($setting['options'])) { $setting['options'] = explode(',', $setting['options']); foreach ($setting['options'] as &$option) { $option = trim($option); } } } echo ''; } ?>