You are here

function webform_submission_render in Webform 6.3

Same name and namespace in other branches
  1. 7.4 includes/webform.submissions.inc \webform_submission_render()
  2. 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);
}