fix import merge
fix <select> handling (hopefully this time for real)
This commit is contained in:
@@ -7,10 +7,3 @@ info about setup script in prefs manage, it seems many people still don't know i
|
|||||||
|
|
||||||
|
|
||||||
show blacklist (and debug?) on prefs manage page
|
show blacklist (and debug?) on prefs manage page
|
||||||
|
|
||||||
|
|
||||||
/* if (!isset($this->persistKeys[$canonical_path])
|
|
||||||
// equality but only if both values are numeric or not numeric, allows to skip 0 == 'auto'
|
|
||||||
&& (($value == $default_value && !(is_numeric($value) xor is_numeric($value)))
|
|
||||||
||
|
|
||||||
(empty($value) && empty($default_value)))) {*/
|
|
||||||
|
@@ -461,9 +461,14 @@ class FormDisplay
|
|||||||
*/
|
*/
|
||||||
private function _validateSelect(&$value, array $allowed)
|
private function _validateSelect(&$value, array $allowed)
|
||||||
{
|
{
|
||||||
|
$value_cmp = is_bool($value)
|
||||||
|
? (int) $value
|
||||||
|
: $value;
|
||||||
foreach ($allowed as $vk => $v) {
|
foreach ($allowed as $vk => $v) {
|
||||||
// force string comparison so that 0 isn't equal to any string
|
// equality comparison only if both values are numeric or not numeric
|
||||||
if ((string)$value == (string)$vk) {
|
// (allows to skip 0 == 'string' equalling to true) or identity (for string-string)
|
||||||
|
if (($vk == $value && !(is_numeric($value_cmp) xor is_numeric($vk)))
|
||||||
|
|| $vk === $value) {
|
||||||
settype($value, gettype($v));
|
settype($value, gettype($v));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -87,14 +87,16 @@ if (isset($_POST['submit_export']) && filter_input(INPUT_POST, 'export_type') ==
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
$cf = ConfigFile::getInstance();
|
$cf = ConfigFile::getInstance();
|
||||||
if (empty($_POST['import_merge'])) {
|
$new_config = $cf->getFlatDefaultConfig();
|
||||||
$cf->resetConfigData();
|
if (!empty($_POST['import_merge'])) {
|
||||||
|
$new_config = array_merge($new_config, $cf->getConfigArray());
|
||||||
}
|
}
|
||||||
|
$new_config = array_merge($new_config, $config);
|
||||||
$_POST_bak = $_POST;
|
$_POST_bak = $_POST;
|
||||||
foreach ($cf->getFlatDefaultConfig() as $k => $v) {
|
foreach ($new_config as $k => $v) {
|
||||||
$_POST[str_replace('/', '-', $k)] = $v;
|
$_POST[str_replace('/', '-', $k)] = $v;
|
||||||
}
|
}
|
||||||
$_POST = array_merge($_POST, $config);
|
$cf->resetConfigData();
|
||||||
$all_ok = $form_display->process(true, false);
|
$all_ok = $form_display->process(true, false);
|
||||||
$all_ok = $all_ok && !$form_display->hasErrors();
|
$all_ok = $all_ok && !$form_display->hasErrors();
|
||||||
$_POST = $_POST_bak;
|
$_POST = $_POST_bak;
|
||||||
|
Reference in New Issue
Block a user