Extract Settings:save function

This commit is contained in:
slawkens 2023-07-13 15:29:19 +02:00
parent 4af944a00b
commit e83880653a
2 changed files with 20 additions and 12 deletions

View File

@ -45,19 +45,9 @@ if (!is_array($settingsFile)) {
$settingsKeyName = ($plugin == 'core' ? $plugin : $settingsFile['key']);
if (isset($_POST['save'])) {
$db->query('DELETE FROM `' . TABLE_PREFIX . 'settings` WHERE `name` = ' . $db->quote($settingsKeyName) . ';');
foreach ($_POST['settings'] as $key => $value) {
try {
$db->insert(TABLE_PREFIX . 'settings', ['name' => $settingsKeyName, 'key' => $key, 'value' => $value]);
} catch (PDOException $error) {
warning('Error while saving setting (' . $plugin . ' - ' . $key . '): ' . $error->getMessage());
}
}
$settings = Settings::getInstance();
$cache = Cache::getInstance();
if ($cache->enabled()) {
$cache->delete('settings');
}
$settings->save($settingsKeyName, $_POST['settings']);
success('Saved at ' . date('H:i'));
}

View File

@ -53,6 +53,24 @@ class Settings implements ArrayAccess
}
}
public function save($pluginName, $settings) {
global $db;
$db->query('DELETE FROM `' . TABLE_PREFIX . 'settings` WHERE `name` = ' . $db->quote($pluginName) . ';');
foreach ($settings as $key => $value) {
try {
$db->insert(TABLE_PREFIX . 'settings', ['name' => $pluginName, 'key' => $key, 'value' => $value]);
} catch (PDOException $error) {
warning('Error while saving setting (' . $pluginName . ' - ' . $key . '): ' . $error->getMessage());
}
}
$cache = Cache::getInstance();
if ($cache->enabled()) {
$cache->delete('settings');
}
}
public function updateInDatabase($pluginName, $key, $value)
{
global $db;