Option to disable settings saving with hooks

for next.my-aac.org
This commit is contained in:
slawkens 2023-08-23 11:57:37 +02:00
parent 43353b4f53
commit f43a5d1221
4 changed files with 21 additions and 3 deletions

View File

@ -6,6 +6,11 @@ require SYSTEM . 'functions.php';
require SYSTEM . 'init.php';
require SYSTEM . 'login.php';
// event system
require_once SYSTEM . 'hooks.php';
$hooks = new Hooks();
$hooks->load();
if(!admin()) {
http_response_code(500);
die('Access denied.');
@ -23,7 +28,7 @@ if (!isset($_POST['settings'])) {
$settings = Settings::getInstance();
$settings->save($_REQUEST['plugin'], $_POST['settings']);
$success = $settings->save($_REQUEST['plugin'], $_POST['settings']);
$errors = $settings->getErrors();
if (count($errors) > 0) {
@ -31,4 +36,6 @@ if (count($errors) > 0) {
die(implode('<br/>', $errors));
}
if ($success) {
echo 'Saved at ' . date('H:i');
}

View File

@ -68,6 +68,7 @@ define('HOOK_ADMIN_LOGIN_AFTER_ACCOUNT', ++$i);
define('HOOK_ADMIN_LOGIN_AFTER_PASSWORD', ++$i);
define('HOOK_ADMIN_LOGIN_AFTER_SIGN_IN', ++$i);
define('HOOK_ADMIN_ACCOUNTS_SAVE_POST', ++$i);
define('HOOK_ADMIN_SETTINGS_BEFORE_SAVE', ++$i);
define('HOOK_EMAIL_CONFIRMED', ++$i);
define('HOOK_GUILDS_BEFORE_GUILD_HEADER', ++$i);
define('HOOK_GUILDS_AFTER_GUILD_HEADER', ++$i);

View File

@ -60,6 +60,16 @@ class Settings implements ArrayAccess
}
$settings = $this->settingsFile[$pluginName];
global $hooks;
if (!$hooks->trigger(HOOK_ADMIN_SETTINGS_BEFORE_SAVE, [
'name' => $pluginName,
'values' => $values,
'settings' => $settings,
])) {
return false;
}
if (isset($settings['callbacks']['beforeSave'])) {
if (!$settings['callbacks']['beforeSave']($settings, $values)) {
return false;

View File

@ -1602,7 +1602,7 @@ Sent by MyAAC,<br/>
if ($key == 'server_path') {
$server_path = $values[$key];
}
elseif (strpos($key, 'database_') !== false) {
elseif (str_contains($key, 'database_')) {
$database[$key] = $values[$key];
}