You are here

function webform2pdf_download_pdf_form_submit in Webform2PDF 7.4

Same name and namespace in other branches
  1. 6.2 includes/webform2pdf.download.inc \webform2pdf_download_pdf_form_submit()
  2. 6 webform2pdf.module \webform2pdf_download_pdf_form_submit()
  3. 7.3 includes/webform2pdf.download.inc \webform2pdf_download_pdf_form_submit()

File

includes/webform2pdf.download.inc, line 127
Implemented menu path: node/%webform_menu/webform-results/downloadpdf node/%webform_menu/submission/%webform_menu_submission/downloadpdf

Code

function webform2pdf_download_pdf_form_submit($form, &$form_state) {

  // filter zero values
  $form_state['values']['submissions'] = array_filter($form_state['values']['submissions']);

  // If there is a selected form element
  if (count($form_state['values']['submissions'])) {

    // call header generator
    $node = node_load($form_state['values']['nid']);
    module_load_include('inc', 'webform', 'includes/webform.submissions');
    $header = theme('webform_results_submissions_header', array(
      'node' => $node,
    ));
    $filters = array(
      'nid' => $form_state['values']['nid'],
      'sid' => $form_state['values']['submissions'],
    );
    $submissions = webform_get_submissions($filters, $header);
    $template = _webform2pdf_get_template($node->nid);
    $pdf = theme('webform2pdf_pdf_init', array(
      'node' => $node,
      'template' => $template,
    ));
    $pdf = theme('webform2pdf_pdf_header', array(
      'pdf' => $pdf,
      'node' => $node,
      'template' => $template,
    ));
    $pdf = theme('webform2pdf_pdf_footer', array(
      'pdf' => $pdf,
      'node' => $node,
      'template' => $template,
    ));
    $pdf = theme('webform2pdf_pdf_page', array(
      'pdf' => $pdf,
    ));
    foreach ($submissions as $key => $submission) {
      $pages[$key] = theme('webform2pdf_content', array(
        'node' => $node,
        'submission' => $submission,
        'template' => $template,
      ));
    }
    $template['pages'] = implode('%pagebreak', $pages);
    $template['pages'] = explode('%pagebreak', $template['pages']);
    $pdf = theme('webform2pdf_pdf_content', array(
      'pdf' => $pdf,
      'node' => $node,
      'template' => $template,
    ));

    // reset pointer to the last page
    $pdf
      ->lastPage();
    $filename = theme('webform2pdf_filename', array(
      'node' => $node,
      'submission' => time(),
    ));

    // http header
    drupal_add_http_header('Content-Type', 'application/pdf');
    drupal_add_http_header('Cache-Control', 'public, must-revalidate, max-age=0');

    // HTTP/1.1
    drupal_add_http_header('Pragma', 'public');
    drupal_add_http_header('Content-Disposition', 'inline; filename="' . $filename . '";');

    // Close and output PDF document
    die($pdf
      ->Output($filename, 'S'));
  }
}