From 943d2c989269f18bf0961d1390c00f09e101fa38 Mon Sep 17 00:00:00 2001 From: Flavio Copes Date: Tue, 28 Jun 2016 13:32:39 +0200 Subject: [PATCH] Fix backend validation for file fields marked as required Fixes https://github.com/getgrav/grav-plugin-form/issues/78 --- CHANGELOG.md | 6 ++++++ system/src/Grav/Common/Data/BlueprintSchema.php | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56c74d7ad..ee75bfeb5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +# v1.1.0-rc.4 +## 06/xx/2016 + +1. [](#bugfix) + * Fix backend validation for file fields marked as required [grav-plugin-form#78](Fixes https://github.com/getgrav/grav-plugin-form/issues/78) + # v1.1.0-rc.3 ## 06/21/2016 diff --git a/system/src/Grav/Common/Data/BlueprintSchema.php b/system/src/Grav/Common/Data/BlueprintSchema.php index b2f41adaf..ef34c5008 100644 --- a/system/src/Grav/Common/Data/BlueprintSchema.php +++ b/system/src/Grav/Common/Data/BlueprintSchema.php @@ -132,8 +132,15 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface } $field = $this->items[$field]; if (isset($field['validate']['required']) - && $field['validate']['required'] === true - && !isset($data[$name])) { + && $field['validate']['required'] === true) { + + if (isset($data[$name])) { + continue; + } + if ($field['type'] == 'file' && isset($data['data']['name'][$name])) { //handle case of file input fields required + continue; + } + $value = isset($field['label']) ? $field['label'] : $field['name']; $language = Grav::instance()['language']; $message = sprintf($language->translate('FORM.MISSING_REQUIRED_FIELD', null, true) . ' %s', $language->translate($value));