BUGFIX Added specific border case for array form data in RequiredFields::php()

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/2.4@108811 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sean Harvey 2010-08-03 01:40:53 +00:00 committed by Sam Minnee
parent 9d305bc94a
commit e8e3ea6680

View File

@ -100,10 +100,17 @@ JS;
if($this->required) {
foreach($this->required as $fieldName) {
$formField = $fields->dataFieldByName($fieldName);
// we need to check if $data[$fieldName] is an array (FileFiled case)
if(($formField && $data[$fieldName] == "") ||
(is_array($data[$fieldName]) && $data[$fieldName]['name'] == "")) {
$error = true;
// submitted data for file upload fields come back as an array
if(is_array($data[$fieldName])) {
$error = ($data[$fieldName]) ? false : true;
} else {
// assume a string or integer
$error = (strlen($data[$fieldName])) ? false : true;
}
if($formField && $error) {
$errorMessage = sprintf(_t('Form.FIELDISREQUIRED', '%s is required').'.', strip_tags('"' . ($formField->Title() ? $formField->Title() : $fieldName) . '"'));
if($msg = $formField->getCustomValidationMessage()) {
$errorMessage = $msg;