Craft\FormBuilder2_EntryService::validateEntry PHP Method

validateEntry() public method

Validate values of a submitted form
public validateEntry ( $form, $submissionData )
    public function validateEntry($form, $submissionData)
    {
        $fieldLayoutFields = $form->getFieldLayout()->getFields();
        $errorMessage = [];
        foreach ($fieldLayoutFields as $key => $fieldLayoutField) {
            $requiredField = $fieldLayoutField->attributes['required'];
            $fieldId = $fieldLayoutField->fieldId;
            $field = craft()->fields->getFieldById($fieldId);
            $userValue = array_key_exists($field->handle, $submissionData) ? $submissionData[$field->handle] : false;
            if ($requiredField == 1) {
                $field->required = true;
            }
            switch ($field->type) {
                case "PlainText":
                    if ($field->required) {
                        $text = craft()->request->getPost($field->handle);
                        if ($text == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} cannot be blank.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "RichField":
                    if ($field->required) {
                        $richField = craft()->request->getPost($field->handle);
                        if ($richField == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} cannot be blank.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "Number":
                    $number = craft()->request->getPost($field->handle);
                    if ($field->required) {
                        if (!ctype_digit($number)) {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} cannot be blank and needs to contain only numbers.', array('fieldname' => $field->name));
                        }
                    } else {
                        if (!ctype_digit($number) && !empty($number)) {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} needs to contain only numbers.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "MultiSelect":
                    $multiselect = craft()->request->getPost($field->handle);
                    if ($field->required) {
                        if ($multiselect == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} needs at least one item selected.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "RadioButtons":
                    $radiobuttons = craft()->request->getPost($field->handle);
                    if ($field->required) {
                        if ($radiobuttons == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} needs at least one option selected.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "Dropdown":
                    $dropdown = craft()->request->getPost($field->handle);
                    if ($field->required) {
                        if ($dropdown == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} needs an item selected.', array('fieldname' => $field->name));
                        }
                    }
                    break;
                case "Checkboxes":
                    $checkbox = craft()->request->getPost($field->handle);
                    if ($field->required) {
                        if ($checkbox == '') {
                            $errorMessage[$field->handle] = Craft::t('{fieldname} must be checked.', array('fieldname' => $field->name));
                        }
                    }
                    break;
            }
        }
        return $errorMessage;
    }