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
|
||||
|
||||
|
||||
/* 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)
|
||||
{
|
||||
$value_cmp = is_bool($value)
|
||||
? (int) $value
|
||||
: $value;
|
||||
foreach ($allowed as $vk => $v) {
|
||||
// force string comparison so that 0 isn't equal to any string
|
||||
if ((string)$value == (string)$vk) {
|
||||
// equality comparison only if both values are numeric or not numeric
|
||||
// (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));
|
||||
return true;
|
||||
}
|
||||
|
@@ -87,14 +87,16 @@ if (isset($_POST['submit_export']) && filter_input(INPUT_POST, 'export_type') ==
|
||||
}
|
||||
}
|
||||
$cf = ConfigFile::getInstance();
|
||||
if (empty($_POST['import_merge'])) {
|
||||
$cf->resetConfigData();
|
||||
$new_config = $cf->getFlatDefaultConfig();
|
||||
if (!empty($_POST['import_merge'])) {
|
||||
$new_config = array_merge($new_config, $cf->getConfigArray());
|
||||
}
|
||||
$new_config = array_merge($new_config, $config);
|
||||
$_POST_bak = $_POST;
|
||||
foreach ($cf->getFlatDefaultConfig() as $k => $v) {
|
||||
foreach ($new_config as $k => $v) {
|
||||
$_POST[str_replace('/', '-', $k)] = $v;
|
||||
}
|
||||
$_POST = array_merge($_POST, $config);
|
||||
$cf->resetConfigData();
|
||||
$all_ok = $form_display->process(true, false);
|
||||
$all_ok = $all_ok && !$form_display->hasErrors();
|
||||
$_POST = $_POST_bak;
|
||||
|
Reference in New Issue
Block a user