fix saving of settings
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -31,6 +31,7 @@ Database::needRoot(false);
|
|||||||
|
|
||||||
if ($page == 'overview' && $userinfo['change_serversettings'] == '1') {
|
if ($page == 'overview' && $userinfo['change_serversettings'] == '1') {
|
||||||
$settings_data = \Froxlor\PhpHelper::loadConfigArrayDir('./actions/admin/settings/');
|
$settings_data = \Froxlor\PhpHelper::loadConfigArrayDir('./actions/admin/settings/');
|
||||||
|
Settings::loadSettingsInto($settings_data);
|
||||||
|
|
||||||
if (isset($_POST['send']) && $_POST['send'] == 'send') {
|
if (isset($_POST['send']) && $_POST['send'] == 'send') {
|
||||||
|
|
||||||
|
|||||||
@@ -307,4 +307,44 @@ class Settings
|
|||||||
$result = call_user_func_array($callback, $args);
|
$result = call_user_func_array($callback, $args);
|
||||||
return $result;
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ namespace Froxlor\UI;
|
|||||||
class Data
|
class Data
|
||||||
{
|
{
|
||||||
|
|
||||||
public static function getFormFieldDataText($fieldname, $fielddata, &$input)
|
public static function getFormFieldDataText($fieldname, $fielddata, $input)
|
||||||
{
|
{
|
||||||
if (isset($input[$fieldname])) {
|
if (isset($input[$fieldname])) {
|
||||||
$newfieldvalue = str_replace("\r\n", "\n", $input[$fieldname]);
|
$newfieldvalue = str_replace("\r\n", "\n", $input[$fieldname]);
|
||||||
@@ -15,7 +15,7 @@ class Data
|
|||||||
return $newfieldvalue;
|
return $newfieldvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getFormFieldDataOption($fieldname, $fielddata, &$input)
|
public static function getFormFieldDataOption($fieldname, $fielddata, $input)
|
||||||
{
|
{
|
||||||
if (isset($input[$fieldname])) {
|
if (isset($input[$fieldname])) {
|
||||||
$newfieldvalue = $input[$fieldname];
|
$newfieldvalue = $input[$fieldname];
|
||||||
@@ -30,7 +30,7 @@ class Data
|
|||||||
return $newfieldvalue;
|
return $newfieldvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getFormFieldDataInt($fieldname, $fielddata, &$input)
|
public static function getFormFieldDataInt($fieldname, $fielddata, $input)
|
||||||
{
|
{
|
||||||
if (isset($input[$fieldname])) {
|
if (isset($input[$fieldname])) {
|
||||||
$newfieldvalue = (int) $input[$fieldname];
|
$newfieldvalue = (int) $input[$fieldname];
|
||||||
@@ -41,7 +41,7 @@ class Data
|
|||||||
return $newfieldvalue;
|
return $newfieldvalue;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getFormFieldDataBool($fieldname, $fielddata, &$input)
|
public static function getFormFieldDataBool($fieldname, $fielddata, $input)
|
||||||
{
|
{
|
||||||
if (isset($input[$fieldname]) && ($input[$fieldname] === '1' || $input[$fieldname] === 1 || $input[$fieldname] === true || strtolower($input[$fieldname]) === 'yes' || strtolower($input[$fieldname]) === 'ja')) {
|
if (isset($input[$fieldname]) && ($input[$fieldname] === '1' || $input[$fieldname] === 1 || $input[$fieldname] === true || strtolower($input[$fieldname]) === 'yes' || strtolower($input[$fieldname]) === 'ja')) {
|
||||||
$newfieldvalue = '1';
|
$newfieldvalue = '1';
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ class Form
|
|||||||
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
|
if (\Froxlor\Validate\Form::validateFieldDefinition($groupdetails)) {
|
||||||
// Prefetch form fields
|
// Prefetch form fields
|
||||||
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
|
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
|
||||||
$groupdetails['fields'][$fieldname] = self::array_merge_prefix($fielddetails, $fielddetails['type'], prefetchFormFieldData($fieldname, $fielddetails));
|
$groupdetails['fields'][$fieldname] = self::array_merge_prefix($fielddetails, $fielddetails['type'], self::prefetchFormFieldData($fieldname, $fielddetails));
|
||||||
$form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname];
|
$form['groups'][$groupname]['fields'][$fieldname] = $groupdetails['fields'][$fieldname];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -281,7 +281,7 @@ class Form
|
|||||||
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
|
foreach ($groupdetails['fields'] as $fieldname => $fielddetails) {
|
||||||
if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) {
|
if (! $only_enabledisable || ($only_enabledisable && isset($fielddetails['overview_option']))) {
|
||||||
if (isset($changed_fields[$fieldname])) {
|
if (isset($changed_fields[$fieldname])) {
|
||||||
if (($saved_field = self::saveFormField($fieldname, $fielddetails, manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false) {
|
if (($saved_field = self::saveFormField($fieldname, $fielddetails, self::manipulateFormFieldData($fieldname, $fielddetails, $changed_fields[$fieldname]))) !== false) {
|
||||||
$saved_fields = array_merge($saved_fields, $saved_field);
|
$saved_fields = array_merge($saved_fields, $saved_field);
|
||||||
} else {
|
} else {
|
||||||
\Froxlor\UI\Response::standard_error('errorwhensaving', $fieldname);
|
\Froxlor\UI\Response::standard_error('errorwhensaving', $fieldname);
|
||||||
@@ -294,7 +294,7 @@ class Form
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save form
|
// Save form
|
||||||
return saveForm($form, $saved_fields);
|
return self::saveForm($form, $saved_fields);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -468,8 +468,10 @@ class Form
|
|||||||
public static function getFormFieldData($fieldname, $fielddata, &$input)
|
public static function getFormFieldData($fieldname, $fielddata, &$input)
|
||||||
{
|
{
|
||||||
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && method_exists('\\Froxlor\\UI\\Data', 'getFormFieldData' . ucfirst($fielddata['type']))) {
|
if (is_array($fielddata) && isset($fielddata['type']) && $fielddata['type'] != '' && method_exists('\\Froxlor\\UI\\Data', 'getFormFieldData' . ucfirst($fielddata['type']))) {
|
||||||
$gfdFunc = '\\Froxlor\\UI\\Data::getFormFieldData' . ucfirst($fielddata['type']);
|
$newfieldvalue = call_user_func(array(
|
||||||
$newfieldvalue = $gfdFunc($fieldname, $fielddata, $input);
|
'\\Froxlor\\UI\\Data',
|
||||||
|
'getFormFieldData' . ucfirst($fielddata['type'])
|
||||||
|
), $fieldname, $fielddata, $input);
|
||||||
} else {
|
} else {
|
||||||
if (isset($input[$fieldname])) {
|
if (isset($input[$fieldname])) {
|
||||||
$newfieldvalue = $input[$fieldname];
|
$newfieldvalue = $input[$fieldname];
|
||||||
|
|||||||
Reference in New Issue
Block a user