fix saving of settings
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -307,4 +307,44 @@ class Settings
|
||||
$result = call_user_func_array($callback, $args);
|
||||
return $result;
|
||||
}
|
||||
|
||||
public static function loadSettingsInto(&$settings_data)
|
||||
{
|
||||
if (is_array($settings_data) && isset($settings_data['groups']) && is_array($settings_data['groups'])) {
|
||||
|
||||
// prepare for use in for-loop
|
||||
$row_stmt = Database::prepare("
|
||||
SELECT `settinggroup`, `varname`, `value`
|
||||
FROM `" . TABLE_PANEL_SETTINGS . "`
|
||||
WHERE `settinggroup` = :group AND `varname` = :varname
|
||||
");
|
||||
|
||||
foreach ($settings_data['groups'] as $settings_part => $settings_part_details) {
|
||||
|
||||
if (is_array($settings_part_details) && isset($settings_part_details['fields']) && is_array($settings_part_details['fields'])) {
|
||||
|
||||
foreach ($settings_part_details['fields'] as $field_name => $field_details) {
|
||||
|
||||
if (isset($field_details['settinggroup']) && isset($field_details['varname']) && isset($field_details['default'])) {
|
||||
// execute prepared statement
|
||||
$row = Database::pexecute_first($row_stmt, array(
|
||||
'group' => $field_details['settinggroup'],
|
||||
'varname' => $field_details['varname']
|
||||
));
|
||||
|
||||
if (! empty($row)) {
|
||||
$varvalue = $row['value'];
|
||||
} else {
|
||||
$varvalue = $field_details['default'];
|
||||
}
|
||||
} else {
|
||||
$varvalue = false;
|
||||
}
|
||||
|
||||
$settings_data['groups'][$settings_part]['fields'][$field_name]['value'] = $varvalue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user