Index: branches/5.2.x/core/kernel/utility/validator.php
===================================================================
diff -u -N -r15522 -r16080
--- branches/5.2.x/core/kernel/utility/validator.php (.../validator.php) (revision 15522)
+++ branches/5.2.x/core/kernel/utility/validator.php (.../validator.php) (revision 16080)
@@ -1,6 +1,6 @@
SetError($field, 'bad_type', null, Array ($params['type']));
+ $this->SetError($field, 'bad_type', null, array('type' => $params['type']));
return false;
}
@@ -256,7 +256,10 @@
if ( !isset($min_val) ) $min_val = '-∞';
if ( !isset($max_val) ) $max_val = '∞';
- $this->SetError($field, 'value_out_of_range', null, Array ($min_val, $max_val));
+ $this->SetError($field, 'value_out_of_range', null, array(
+ 'min_value' => $min_val,
+ 'max_value' => $max_val
+ ));
return false;
}
@@ -271,7 +274,11 @@
}
if ( !$res ) {
- $error_params = Array ((int)getArrayValue($params, 'min_len'), (int)getArrayValue($params, 'max_len'), mb_strlen($val));
+ $error_params = array(
+ 'min_length' => (int)getArrayValue($params, 'min_len'),
+ 'max_length' => (int)getArrayValue($params, 'max_len'),
+ 'value' => mb_strlen($val)
+ );
$this->SetError($field, 'length_out_of_range', null, $error_params);
return false;
@@ -425,9 +432,23 @@
$msg = $this->Application->ReplaceLanguageTags($msg, $force_escape);
if ( isset($this->FieldErrors[$field]['params']) ) {
- return vsprintf($msg, $this->FieldErrors[$field]['params']);
+ $params = $this->FieldErrors[$field]['params'];
}
+ else {
+ $params = array();
+ }
+ $field_phrase = $this->Application->isAdmin ? 'la_fld_' . $field : 'lu_fld_' . $field;
+ $params['field'] = $this->Application->Phrase($field_phrase);
+
+ foreach ( $params as $param_name => $param_value ) {
+ $msg = str_replace('{' . $param_name . '}', $param_value, $msg, $replacement_count);
+ }
+
+ if ( strpos($msg, '%s') !== false ) {
+ trigger_error('Unexpected "%s" in field "' . $field . '" validation error message (pseudo: "' . $error_pseudo . '") in "' . $this->dataSource->Prefix . '" unit', E_USER_WARNING);
+ }
+
return $msg;
}
@@ -501,4 +522,4 @@
{
$this->FieldErrors = Array();
}
-}
\ No newline at end of file
+}
Index: branches/5.2.x/core/install/upgrades.sql
===================================================================
diff -u -N -r16066 -r16080
--- branches/5.2.x/core/install/upgrades.sql (.../upgrades.sql) (revision 16066)
+++ branches/5.2.x/core/install/upgrades.sql (.../upgrades.sql) (revision 16080)
@@ -2909,3 +2909,16 @@
WHERE PhraseKey = 'LA_SECTION_FILE';
# ===== v 5.2.1 =====
+
+# ===== v 5.2.2-B1 =====
+UPDATE LanguageLabels
+SET l1_Translation = 'Incorrect data format, please use {type}'
+WHERE PhraseKey = 'LA_ERR_BAD_TYPE';
+
+UPDATE LanguageLabels
+SET l1_Translation = 'Field value is out of range, possible values from {min_value} to {max_value}'
+WHERE PhraseKey = 'LA_ERR_VALUE_OUT_OF_RANGE';
+
+UPDATE LanguageLabels
+SET l1_Translation = 'Field value length is out of range, possible value length from {min_length} to {max_length}'
+WHERE PhraseKey = 'LA_ERR_LENGTH_OUT_OF_RANGE';
Index: branches/5.2.x/core/install/english.lang
===================================================================
diff -u -N -r15876 -r16080
--- branches/5.2.x/core/install/english.lang (.../english.lang) (revision 15876)
+++ branches/5.2.x/core/install/english.lang (.../english.lang) (revision 16080)
@@ -294,13 +294,13 @@
dXNlciBub3QgZm91bmQ=
WW91IG11c3Qgc2VsZWN0IG9ubHkgb25lIHVzZXI=
SW5jb3JyZWN0IGRhdGUgZm9ybWF0LCBwbGVhc2UgdXNlICglcykgZXguICglcyk=
- SW5jb3JyZWN0IGRhdGEgZm9ybWF0LCBwbGVhc2UgdXNlICVz
+ SW5jb3JyZWN0IGRhdGEgZm9ybWF0LCBwbGVhc2UgdXNlIHt0eXBlfQ==
SW52YWxpZCBGb3JtYXQ=
- RmllbGQgdmFsdWUgbGVuZ3RoIGlzIG91dCBvZiByYW5nZSwgcG9zc2libGUgdmFsdWUgbGVuZ3RoIGZyb20gJXMgdG8gJXM=
+ RmllbGQgdmFsdWUgbGVuZ3RoIGlzIG91dCBvZiByYW5nZSwgcG9zc2libGUgdmFsdWUgbGVuZ3RoIGZyb20ge21pbl9sZW5ndGh9IHRvIHttYXhfbGVuZ3RofQ==
UHJpbWFyeSBMYW5nLiB2YWx1ZSBSZXF1aXJlZA==
RmllbGQgaXMgcmVxdWlyZWQ=
RmllbGQgdmFsdWUgbXVzdCBiZSB1bmlxdWU=
- RmllbGQgdmFsdWUgaXMgb3V0IG9mIHJhbmdlLCBwb3NzaWJsZSB2YWx1ZXMgZnJvbSAlcyB0byAlcw==
+ RmllbGQgdmFsdWUgaXMgb3V0IG9mIHJhbmdlLCBwb3NzaWJsZSB2YWx1ZXMgZnJvbSB7bWluX3ZhbHVlfSB0byB7bWF4X3ZhbHVlfQ==
RXhwb3J0IGZvbGRlciBpcyBub3Qgd3JpdGFibGU=
RXJyb3IgY3JlYXRpbmcgZm9sZGVyLiBFcnJvciBudW1iZXI6
UGxlYXNlIG5hbWUgeW91ciBmaWxlcyB0byBiZSB3ZWItZnJpZW5kbHkuIFdlIHJlY29tbWVuZCB1c2luZyBvbmx5IHRoZXNlIGNoYXJhY3RlcnMgaW4gZmlsZSBuYW1lczogDQpMZXR0ZXJzIGEteiwgQS1aLCBOdW1iZXJzIDAtOSwgIl8iICh1bmRlcnNjb3JlKSwgIi0iIChkYXNoKSwgIiAiIChzcGFjZSksICIuIiAocGVyaW9kKQ0KUGxlYXNlIGF2b2lkIHVzaW5nIGFueSBvdGhlciBjaGFyYWN0ZXJzIGxpa2UgcXVvdGVzLCBicmFja2V0cywgcXVvdGF0aW9uIG1hcmtzLCAiPyIsICIhIiwgIj0iLCBmb3JlaWduIHN5bWJvbHMsIGV0Yy4=