protected function Webform::w3_formStateToSubmission in Little helpers 7
Webform3 version of
See also
Webform::formStateToSubmission().
1 call to Webform::w3_formStateToSubmission()
- Webform::formStateToSubmission in src/
Webform/ Webform.php - Create a submission-object from a webform_client_form $form_state.
File
- src/
Webform/ Webform.php, line 147
Class
Namespace
Drupal\little_helpers\WebformCode
protected function w3_formStateToSubmission(&$form_state) {
$node = $this->node;
$form_state += [
'values' => [
'submitted' => [],
'details' => [
'sid' => NULL,
'uid' => $GLOBALS['user']->uid,
],
],
];
$sid = $form_state['values']['details']['sid'] ? (int) $form_state['values']['details']['sid'] : NULL;
// Check if user is submitting as a draft.
$is_draft = (int) (!empty($form_state['save_draft']));
$form_state += [
'values' => [
'submitted' => [],
],
];
if (!$sid) {
// Create a new submission object.
$submission = (object) array(
'nid' => $node->nid,
'sid' => NULL,
'uid' => $form_state['values']['details']['uid'],
'submitted' => REQUEST_TIME,
'remote_addr' => ip_address(),
'is_draft' => $is_draft,
'data' => webform_submission_data($node, $form_state['values']['submitted']),
);
}
else {
// To maintain time and user information, load the existing submission.
$submission = webform_get_submission($node->webform['nid'], $sid);
$submission->is_draft = $is_draft;
// Merge with new submission data. The + operator maintains numeric keys.
// This maintains existing data with just-submitted data when a user resumes
// a submission previously saved as a draft.
$new_data = webform_submission_data($node, $form_state['values']['submitted']);
$submission->data = $new_data + $submission->data;
}
return new Submission($this, $submission);
}