From c24ed58d2de17a7547dd640a8d219d5806dae3f3 Mon Sep 17 00:00:00 2001 From: Sam Minnee Date: Sun, 5 Dec 2010 08:34:42 +0000 Subject: [PATCH] BUGFIX Better checking of file validity (#6093) Thanks Pigeon (from r113419) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@114533 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/RequiredFields.php | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/forms/RequiredFields.php b/forms/RequiredFields.php index 950618c67..a22ec73ae 100755 --- a/forms/RequiredFields.php +++ b/forms/RequiredFields.php @@ -10,7 +10,7 @@ * @subpackage validators */ class RequiredFields extends Validator { - + protected $required; protected $useLabels = true; @@ -98,14 +98,19 @@ JS; $valid = ($field->validate($this) && $valid); } if($this->required) { - foreach($this->required as $fieldName) { + foreach($this->required as $fieldName) { $formField = $fields->dataFieldByName($fieldName); $error = true; // submitted data for file upload fields come back as an array $value = isset($data[$fieldName]) ? $data[$fieldName] : null; if(is_array($value)) { - $error = ($value) ? false : true; + if ($formField instanceof FileField && isset($value['error']) && $value['error']) { + $error = true; + } + else { + $error = (count($value)) ? false : true; + } } else { // assume a string or integer $error = (strlen($value)) ? false : true; @@ -168,4 +173,4 @@ JS; } } -?> \ No newline at end of file +?>