function webform_submission_render in Webform 6.3
Same name and namespace in other branches
- 7.4 includes/webform.submissions.inc \webform_submission_render()
- 7.3 includes/webform.submissions.inc \webform_submission_render()
Print a Webform submission for display on a page or in an e-mail.
2 calls to webform_submission_render()
- webform_submission_page in includes/
webform.submissions.inc - Menu callback; Present a Webform submission page for display or editing.
- _webform_filter_values in ./
webform.module - Filters all special tokens provided by webform, such as %post and %profile.
File
- includes/
webform.submissions.inc, line 532 - This file is loaded when handling submissions, either submitting new, editing, or viewing. It also contains all CRUD functions for submissions.
Code
function webform_submission_render($node, $submission, $email, $format) {
$component_tree = array();
$renderable = array();
$page_count = 1;
$excluded_components = isset($email) ? $email['excluded_components'] : array();
// Meta data that may be useful for modules implementing
// hook_webform_submission_render_alter().
$renderable['#node'] = $node;
$renderable['#submission'] = $submission;
$renderable['#email'] = $email;
$renderable['#format'] = $format;
// Set the theme function for submissions.
$renderable['#theme'] = array(
'webform_submission_' . $node->nid,
'webform_submission',
);
// Remove excluded components.
$components = $node->webform['components'];
foreach ($excluded_components as $cid) {
unset($components[$cid]);
}
_webform_components_tree_build($components, $component_tree, 0, $page_count);
// Make sure at least one field is available
if (isset($component_tree['children'])) {
// Recursively add components to the form.
foreach ($component_tree['children'] as $cid => $component) {
if (_webform_client_form_rule_check($node, $component, $component['page_num'], NULL, $submission)) {
_webform_client_form_add_component($node, $component, NULL, $renderable, $renderable, NULL, $submission, $format);
}
}
}
drupal_alter('webform_submission_render', $renderable);
return drupal_render($renderable);
}