Hi there!
I was looking for a way to use a single error message in the validation class for all rules. I managed to do it with few changes in system/Validation/Validation.php
The following lines in function setRules can be modified like this:
-- Original --
PHP Code:
if (array_key_exists('errors', $rule)) {
$this->customErrors[$field] = $rule['errors'];
unset($rule['errors']);
}
-- Modified --
PHP Code:
if (array_key_exists('errors', $rule) && is_array($rule['errors'])) {
$this->customErrors[$field] = $rule['errors'];
unset($rule['errors']);
} elseif(array_key_exists('error', $rule) && is_string($rule['error'])) {
$this->customErrors[$field] = $rule['error'];
unset($rule['error']);
}
And also function getErrorMessage:
-- Original --
PHP Code:
// Check if custom message has been defined by user
if (isset($this->customErrors[$field][$rule])) {
$message = lang($this->customErrors[$field][$rule]);
} elseif (null !== $originalField && isset($this->customErrors[$originalField][$rule])) {
$message = lang($this->customErrors[$originalField][$rule]);
} else {
// Try to grab a localized version of the message...
// lang() will return the rule name back if not found,
// so there will always be a string being returned.
$message = lang('Validation.' . $rule);
}
-- Modified --
PHP Code:
// Check if custom message has been defined by user
if (isset($this->customErrors[$field][$rule])) {
$message = lang($this->customErrors[$field][$rule]);
} elseif (null !== $originalField && isset($this->customErrors[$originalField][$rule])) {
$message = lang($this->customErrors[$originalField][$rule]);
} elseif(is_string($this->customErrors[$field])) {
$message = $this->customErrors[$field];
} else {
// Try to grab a localized version of the message...
// lang() will return the rule name back if not found,
// so there will always be a string being returned.
$message = lang('Validation.' . $rule).'kur';
}
I hope you will find this useful and this future find its way to the official release.