Index: trunk/core/kernel/utility/unit_config_reader.php =================================================================== diff -u -N -r7997 -r8002 --- trunk/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 7997) +++ trunk/core/kernel/utility/unit_config_reader.php (.../unit_config_reader.php) (revision 8002) @@ -373,22 +373,22 @@ return ; } - $res = $conn->Query("DESCRIBE $tablename"); - + $res = $conn->Query('DESCRIBE '.$tablename); $config_link = $debugger->getFileLink(FULL_PATH.$this->prefixFiles[$config['Prefix']], 1, $config['Prefix']); $error_messages = Array ( 'field_not_found' => 'Field %s exists in the database, but is not defined in config', 'default_missing' => 'Default value for field %s not set in config', 'not_null_error1' => 'Field %s is NOT NULL in the database, but is not configured as not_null or required', 'not_null_error2' => 'Field %s is described as NOT NULL in config, but does not have DEFAULT value', - 'invalid_default' => 'Default value for field %s%s (%s) in config differs from default value from field in database (%s)', + 'invalid_default' => 'Default value for field %s%s not sync. to db (in config = %s, in db = %s)', 'type_missing' => 'Type definition for field %s missing in config', ); $config_errors = Array (); foreach ($res as $field) { $f_name = $field['Field']; + if (getArrayValue($config, 'Fields')) { if (preg_match('/l[\d]+_[\w]/', $f_name)) { // skip multilingual fields @@ -399,6 +399,10 @@ $config_errors[] = sprintf($error_messages['field_not_found'], $f_name); } else { + if (is_numeric($field['Default'])) { + $field['Default'] = preg_match('/[\.,]/', $field['Default']) ? (float)$field['Default'] : (int)$field['Default']; + } + $options = $config['Fields'][$f_name]; $default_missing = false; if (!array_key_exists('default', $options)) { @@ -422,10 +426,10 @@ if (!$default_missing) { if ($f_name == $config['IDField'] && $options['default'] !== 0) { - $config_errors[] = sprintf($error_messages['invalid_default'], 'IDField ', $f_name, var_export($options['default'], true), var_export($field['Default'], true)); + $config_errors[] = sprintf($error_messages['invalid_default'], 'IDField ', $f_name, $this->varDump($options['default']), $this->varDump($field['Default'])); } - else if ($options['default'] != '#NOW#' && (string)$field['Default'] !== (string)$options['default'] && !in_array($options['type'], $float_types)) { - $config_errors[] = sprintf($error_messages['invalid_default'], '', $f_name, var_export($options['default'], true), var_export($field['Default'], true)); + else if ($options['default'] != '#NOW#' && $field['Default'] !== $options['default'] && !in_array($options['type'], $float_types)) { + $config_errors[] = sprintf($error_messages['invalid_default'], '', $f_name, $this->varDump($options['default']), $this->varDump($field['Default'])); } } } @@ -436,13 +440,16 @@ $error_prefix = 'Config Error'.(count($config_errors) > 1 ? 's' : '').': for prefix '.$config_link.' in unit config:
'; $config_errors = $error_prefix.'   '.implode('
   ', $config_errors); - - $debugger->appendHTML($config_errors); safeDefine('DBG_RAISE_ON_WARNINGS', 1); } } + function varDump($value) + { + return var_export($value, true).' of '.gettype($value).''; + } + function ProcessDependencies($prefix) { $config =& $this->configData[$prefix];