diff --git a/modules/backend/classes/FormWidgetBase.php b/modules/backend/classes/FormWidgetBase.php index 4206749da..92eecfcb0 100644 --- a/modules/backend/classes/FormWidgetBase.php +++ b/modules/backend/classes/FormWidgetBase.php @@ -37,6 +37,11 @@ abstract class FormWidgetBase extends WidgetBase */ public $previewMode = false; + /** + * @var int Value returned when the widget should not contribute any save data. + */ + const NO_SAVE_DATA = -1; + /** * Constructor * @param $controller Controller Active controller object. diff --git a/modules/backend/formwidgets/FileUpload.php b/modules/backend/formwidgets/FileUpload.php index a3fdc0096..5b9e4666a 100644 --- a/modules/backend/formwidgets/FileUpload.php +++ b/modules/backend/formwidgets/FileUpload.php @@ -178,6 +178,14 @@ class FileUpload extends FormWidgetBase $this->addJs('js/fileupload.js', 'core'); } + /** + * {@inheritDoc} + */ + public function getSaveData($value) + { + return FormWidgetBase::NO_SAVE_DATA; + } + /** * Checks the current request to see if it is a postback containing a file upload * for this particular widget. diff --git a/modules/backend/widgets/Form.php b/modules/backend/widgets/Form.php index 946a28d18..fff5cccc0 100644 --- a/modules/backend/widgets/Form.php +++ b/modules/backend/widgets/Form.php @@ -11,6 +11,7 @@ use Backend\Classes\FormField; use Backend\Classes\WidgetBase; use Backend\Classes\WidgetManager; use System\Classes\ApplicationException; +use Backend\Classes\FormWidgetBase; /** * Form Widget @@ -718,6 +719,8 @@ class Form extends WidgetBase : null; $data[$field] = $widget->getSaveData($widgetValue); + if ($data[$field] === FormWidgetBase::NO_SAVE_DATA) + unset($data[$field]); } return $data;