From e8e3ea668001ed15044568dd8da307947d364809 Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Tue, 3 Aug 2010 01:40:53 +0000 Subject: [PATCH] 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 --- forms/RequiredFields.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/forms/RequiredFields.php b/forms/RequiredFields.php index 594f514ee..f1981e437 100755 --- a/forms/RequiredFields.php +++ b/forms/RequiredFields.php @@ -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;