webform_submission_uuid.module in Webform Submission UUID 7.4
File
webform_submission_uuid.module
View source
<?php
function webform_submission_uuid_uuid_sync($initial_sync = FALSE) {
switch (WebformStorageController::getInstanceType()) {
case 'db':
_uuid_sync_table('webform_submissions', 'sid', 'uuid');
break;
case 'mongodb':
if ($initial_sync) {
$cursor = mongodb_collection('webform_submissions')
->find();
foreach ($cursor as $mongodb_id => $submission) {
$submission['_id'] = uuid_generate();
mongodb_collection('webform_submissions')
->insert($submission);
mongodb_collection('webform_submissions')
->remove(array(
'_id' => new MongoId($mongodb_id),
));
}
}
break;
}
}
function webform_submission_uuid_webform_submission_load(&$submissions) {
switch (WebformStorageController::getInstanceType()) {
case 'db':
$sids = array_keys($submissions);
$result = db_select('webform_submissions', 's')
->fields('s')
->condition('s.sid', $sids, 'IN')
->execute();
if (!empty($result)) {
foreach ($result as $row) {
if (!empty($submissions[$row->sid])) {
$submissions[$row->sid]->uuid = $row->uuid;
}
}
}
break;
case 'mongodb':
foreach ($submissions as $sid => $submission) {
$submissions[$sid]->uuid = $submissions[$sid]->_id;
}
break;
}
}
function webform_submission_uuid_webform_submission_presave($node, &$submission) {
if (empty($submission->sid) || !empty($submission->is_new)) {
$submission->uuid = uuid_generate();
}
}
function webform_submission_uuid_get_submission($uuid, $reset = FALSE) {
static $submissions = array();
if ($reset) {
$submissions = array();
if (!isset($uuid)) {
return;
}
}
if (!isset($submissions[$uuid])) {
module_load_include('inc', 'webform', 'includes/webform.submissions');
$submissions[$uuid] = webform_get_submissions(array(
'uuid' => $uuid,
));
}
return $submissions[$uuid];
}
function webform_submission_uuid_webform($uuid, $reset = FALSE) {
$webform = null;
if ($submission = webform_submission_uuid_get_submission($uuid, $reset)) {
$webform = node_load($submission->nid, NULL, $reset);
}
return $webform;
}