function webform_rules_rules_invoke_event in Webform Rules 6
Same name and namespace in other branches
- 7 webform_rules.module \webform_rules_rules_invoke_event()
Invoke rules event with submitted data.
Parameters
$submission_data: Data from webform prepared by webform_submission_data().
$node: The submitted webform node.
$op: Type of submission: 'insert', 'update', 'delete', 'submit.
4 calls to webform_rules_rules_invoke_event()
- webform_rules_client_form_submit in ./
webform_rules.module - Custom submit handler for webform submissions.
- webform_rules_webform_submission_delete in ./
webform_rules.module - Implementation of hook_webform_submission_update().
- webform_rules_webform_submission_insert in ./
webform_rules.module - Implementation of hook_webform_submission_insert().
- webform_rules_webform_submission_update in ./
webform_rules.module - Implementation of hook_webform_submission_update().
File
- ./
webform_rules.module, line 103 - Adds rules integration for webform submissions.
Code
function webform_rules_rules_invoke_event($submission, $node, $op = 'insert') {
global $user;
if (!is_array($submission->data) || count($submission->data) == 0) {
return;
}
$is_draft = isset($submission->is_draft) && $submission->is_draft;
$webform = $node->webform;
$data = array(
'op' => $op,
'sid' => $submission->sid,
'components' => array(),
);
$form_id = 'webform-client-form-' . $webform['nid'];
// Map values to field names.
foreach ($submission->data as $cid => $value) {
$component = $webform['components'][$cid];
$data['components'][$component['form_key']]['value'] = $value['value'];
$data['components'][$component['form_key']]['component'] = $component;
}
// Invoke the rules event.
switch ($op) {
case 'insert':
if ($is_draft) {
rules_invoke_event('webform_rules_submit_as_draft', array(
'user' => $user,
'node' => $node,
'data' => $data,
'form_id' => $form_id,
));
}
else {
rules_invoke_event('webform_rules_submit', array(
'user' => $user,
'node' => $node,
'data' => $data,
'form_id' => $form_id,
));
}
break;
case 'submit':
rules_invoke_event('webform_rules_insert', array(
'user' => $user,
'node' => $node,
'data' => $data,
'form_id' => $form_id,
));
break;
case 'update':
rules_invoke_event('webform_rules_update', array(
'user' => $user,
'node' => $node,
'data' => $data,
'form_id' => $form_id,
));
break;
case 'delete':
rules_invoke_event('webform_rules_delete', array(
'user' => $user,
'node' => $node,
'data' => $data,
'form_id' => $form_id,
));
break;
}
}