You are here

function webform2pdf_download_pdf_form_submit in Webform2PDF 6.2

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

File

includes/webform2pdf.download.inc, line 115

Code

function webform2pdf_download_pdf_form_submit($form, &$form_state) {

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

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

    // call header generator
    $header = theme('webform_results_submissions_header', $node);
    $submissions = _webform2pdf_get_submissions($form_state['values']['nid'], $header, $form_state['values']['sids']);
    $node = node_load($form_state['values']['nid']);
    $template = _webform2pdf_get_template($node->nid);
    $tokens = array();
    foreach ($submissions as $key => $submission) {
      $tokens[$key] = _webform2pdf_get_template_vars($node, $submission);
    }
    $pdf = theme('webform2pdf_pdf_init', $node, $template);
    $pdf = theme('webform2pdf_pdf_header', $pdf, $node, $template);
    $pdf = theme('webform2pdf_pdf_footer', $pdf, $node, $template);
    $pdf = theme('webform2pdf_pdf_page', $pdf);

    // todo: @deprecated deprecated since version 5.9.089 (2011-06-13)
    if (method_exists($pdf, 'AliasNbPages')) {

      // initialize document
      $pdf
        ->AliasNbPages();
    }

    // Inserts every token value into the template
    foreach ($tokens as $key => $token) {
      $pages[$key] = strtr($template['p_body'], $token);
    }
    $template['pages'] = implode('%pagebreak', $pages);
    $template['pages'] = explode('%pagebreak', $template['pages']);
    $pdf = theme('webform2pdf_pdf_content', $pdf, $node, $template, $tokens);

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

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