/** * Returns field value from POST data. * * @param kyCustomFieldDefinition $custom_field_definition Custom field definition. * @throws kyException * @return mixed Field value. */ function ky_get_post_value($custom_field_definition) { $field_name = $custom_field_definition->getName(); $required = $custom_field_definition->getIsRequired(); $regexp = $custom_field_definition->getRegexpValidate(); $as_array = $custom_field_definition->getType() === kyCustomFieldDefinition::TYPE_CHECKBOX || $custom_field_definition->getType() === kyCustomFieldDefinition::TYPE_MULTI_SELECT; if ($_SERVER['REQUEST_METHOD'] !== 'POST') { return null; } if (!array_key_exists($field_name, $_POST)) { if ($required) { throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle()); } return null; } if ($as_array) { $value = $_POST[$field_name]; if (!is_array($value)) { if (strlen(trim($value)) > 0) { $value = array($value); } else { $value = array(); } } if ($required && count($value) === 0) { throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle()); } } else { $value = trim($_POST[$field_name]); if ($required && strlen($value) === 0) { throw new kyException("Field '%s' is required.", $custom_field_definition->getTitle()); } if (strlen($regexp) > 0 && !preg_match($regexp, $value)) { throw new kyException("Error validating field '%s'.", $custom_field_definition->getTitle()); } } return $value; }