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];