function webform_service_parse_submission in Webform Service 7.4
Same name and namespace in other branches
- 6.3 webform_service.module \webform_service_parse_submission()
 
Provided a submission in external format, this parses it to what webform expects.
Parameters
type $webform:
type $submission:
3 calls to webform_service_parse_submission()
- webform_service_submission_create in resources/
submission_resource.inc  - Creates a new submission within a webform.
 - webform_service_submission_delete in resources/
submission_resource.inc  - Delete a submission within a webform.
 - webform_service_submission_update in resources/
submission_resource.inc  - Updates a webform submission based on submitted values.
 
File
- ./
webform_service.module, line 215  
Code
function webform_service_parse_submission($webform, $submission) {
  global $user;
  // Make sure the submission and webforms are objects.
  $webform = (object) $webform;
  $submission = (object) $submission;
  // If the submission data was bundled within the submission, pull it out.
  if (isset($submission->submission)) {
    $submission = (object) $submission->submission;
  }
  // Normalize the submission data.
  $data = array();
  foreach ($submission->data as $cid => $values) {
    $data[$cid] = $values['values'];
  }
  // Setup the submission object.
  $submission_obj = (object) array(
    'nid' => !empty($submission->nid) ? $submission->nid : $webform->nid,
    'uid' => !empty($submission->uid) ? $submission->uid : $user->uid,
    'submitted' => !empty($submission->submitted) ? $submission->submitted : REQUEST_TIME,
    'remote_addr' => !empty($submission->remote_addr) ? $submission->remote_addr : ip_address(),
    'is_draft' => 0,
    'data' => $data,
  );
  // Add the submission ID if it is provided.
  if (!empty($submission->sid)) {
    $submission_obj->sid = $submission->sid;
  }
  // Add the uuid value if provided.
  if (!empty($submission->uuid)) {
    $submission_obj->uuid = $submission->uuid;
  }
  // Add the completed value if provided.
  if (!empty($submission->completed)) {
    $submission_obj->completed = $submission->completed;
  }
  // Add the modified value if provided. Will eventually be overridden if doing an update.
  if (!empty($submission->modified)) {
    $submission_obj->modified = $submission->modified;
  }
  // Allow other modules to modify the submission.
  drupal_alter('webform_service_submission', $submission_obj, $submission);
  return $submission_obj;
}