You are here

function webform2pdf_admin_settings in Webform2PDF 7.4

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

Overview form of all components for this webform.

1 string reference to 'webform2pdf_admin_settings'
webform2pdf_menu in ./webform2pdf.module
Implements hook_menu().

File

includes/webform2pdf.settings.inc, line 37
Webform to PDF settings form.

Code

function webform2pdf_admin_settings($form, &$form_state) {
  $default = variable_get('webform2pdf_default', '');

  // It is needed because of file upload
  $form['#attributes'] = array(
    'enctype' => 'multipart/form-data',
  );
  $form['base'] = array(
    '#type' => 'fieldset',
    '#title' => t('General settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['base']['pdf_send_email'] = array(
    '#type' => 'checkbox',
    '#title' => t('Attach PDF as an attachment to the e-mails sent to the form recipients.'),
    '#default_value' => $default['pdf_send_email'],
  );

  //background image
  $form['base']['p_background'] = array(
    '#type' => 'value',
    '#value' => $default['p_background'],
  );
  if ($default['p_background']) {
    $file = file_load($default['p_background']);
    $picture = array(
      'path' => $file->uri,
      'alt' => 'Page background',
      'title' => $file->filename,
    );
    $form['base']['p_background_img'] = array(
      '#type' => 'item',
      '#title' => t('Background image for page'),
      '#markup' => theme('image', $picture),
    );
    $form['base']['p_background_del'] = array(
      '#type' => 'checkbox',
      '#title' => t('Delete this image.'),
    );
  }
  else {
    $form['base']['p_background_file'] = array(
      '#type' => 'file',
      '#title' => t('Background image for page.'),
      '#size' => 60,
      '#description' => t('Upload background image for page. Image will be scaled by page size.'),
    );
  }
  $form['base']['page_format'] = array(
    '#type' => 'select',
    '#title' => t('Paper size'),
    '#default_value' => $default['page_format'],
    '#options' => array(
      '4A0' => '4A0',
      '2A0' => '2A0',
      'A0' => 'A0',
      'A1' => 'A1',
      'A2' => 'A2',
      'A3' => 'A3',
      'A4' => 'A4',
      'A5' => 'A5',
      'A6' => 'A6',
      'A7' => 'A7',
      'A8' => 'A8',
      'A9' => 'A9',
      'A10' => 'A10',
      'B0' => 'B0',
      'B1' => 'B1',
      'B2' => 'B2',
      'B3' => 'B3',
      'B4' => 'B4',
      'B5' => 'B5',
      'B6' => 'B6',
      'B7' => 'B7',
      'B8' => 'B8',
      'B9' => 'B9',
      'B10' => 'B10',
      'C0' => 'C0',
      'C1' => 'C1',
      'C2' => 'C2',
      'C3' => 'C3',
      'C4' => 'C4',
      'C5' => 'C5',
      'C6' => 'C6',
      'C7' => 'C7',
      'C8' => 'C8',
      'C9' => 'C9',
      'C10' => 'C10',
      'RA0' => 'RA0',
      'RA1' => 'RA1',
      'RA2' => 'RA2',
      'RA3' => 'RA3',
      'RA4' => 'RA4',
      'SRA0' => 'SRA0',
      'SRA1' => 'SRA1',
      'SRA2' => 'SRA2',
      'SRA3' => 'SRA3',
      'SRA4' => 'SRA4',
      'LETTER' => t('Letter'),
      'LEGAL' => t('Legal'),
      'EXECUTIVE' => t('Executive'),
      'FOLIO' => t('Folio'),
    ),
  );
  $form['base']['page_orientation'] = array(
    '#type' => 'radios',
    '#title' => t('Page orientation'),
    '#default_value' => $default['page_orientation'],
    '#options' => array(
      'P' => t('Portrait'),
      'L' => t('Landscape'),
    ),
  );
  $form['img'] = array(
    '#type' => 'fieldset',
    '#title' => t('Images size settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['img']['h_left_logo_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Maximum size of left header logo'),
    '#default_value' => $default['h_left_logo_size'],
    '#size' => 10,
    '#description' => t('Maximum dimensions of the logo on the left side of the header in pixels. Format: width x height. E.g: 270x205'),
  );
  $form['img']['h_right_logo_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Maximum dimensions of right header logo'),
    '#default_value' => $default['h_right_logo_size'],
    '#size' => 10,
    '#description' => t('Maximum dimensions of the logo on the right side of the header in pixels. Format: width x height. E.g: 270x205'),
  );
  $form['img']['f_left_logo_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Maximum dimensions of left footer logo'),
    '#default_value' => $default['f_left_logo_size'],
    '#size' => 10,
    '#description' => t('Maximum dimensions of the logo on the left side of the footer in pixels. Format: width x height. E.g: 270x56 <br /> <b>WARNING! Setting height greater than 56px could cause error in PDF output.</b>'),
  );
  $form['img']['f_right_logo_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Maximum dimensions of right footer logo'),
    '#default_value' => $default['f_right_logo_size'],
    '#size' => 10,
    '#description' => t('Maximum dimensions of the logo on the right side of the footer in pixels. Format: width x height. E.g: 270x56 <br /> <b>WARNING! Setting height greater than 56px could cause error in PDF output.</b>'),
  );

  // Header
  $form['header'] = array(
    '#type' => 'fieldset',
    '#title' => t('PDF header'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['header']['h_left_logo'] = array(
    '#type' => 'value',
    '#value' => $default['h_left_logo'],
  );
  if ($default['h_left_logo']) {
    $logo_file = file_load($default['h_left_logo']);
    $picture = array(
      'path' => $logo_file->uri,
      'alt' => 'Header left logo.',
      'title' => $logo_file->filename,
    );
    $form['header']['h_left_logo_img'] = array(
      '#type' => 'item',
      '#title' => t('Logo on the left side'),
      '#markup' => theme('image', $picture),
    );
    $form['header']['h_left_logo_del'] = array(
      '#type' => 'checkbox',
      '#title' => t('Delete left side logo.'),
    );
  }
  else {
    $form['header']['h_left_logo_file'] = array(
      '#type' => 'file',
      '#title' => t('Upload left side logo'),
      '#size' => 60,
      '#maxlength' => 250,
      '#description' => t("Upload left side logo. If the size of the uploaded image is more than @size, it will be resized to this size.", array(
        '@size' => $default['h_left_logo_size'],
      )),
    );
  }
  $form['header']['h_txt'] = array(
    '#type' => 'textarea',
    '#title' => t('Header text'),
    '#rows' => '5',
    '#default_value' => $default['h_txt'],
    '#resizable' => FALSE,
    '#description' => t("PDF header text. 5 rows maximum.") . theme('webform_token_help'),
  );
  $form['header']['h_txt_align'] = array(
    '#type' => 'select',
    '#title' => t('Text alignment'),
    '#default_value' => $default['h_txt_align'],
    '#options' => array(
      'L' => t('Align left'),
      'C' => t('Align center'),
      'R' => t('Align right'),
    ),
  );
  $form['header']['h_font_family'] = array(
    '#type' => 'select',
    '#title' => t('Font Family'),
    '#default_value' => $default['h_font_family'],
    '#options' => _webform2pdf_get_available_fonts('header'),
    '#description' => t('Set the font family to be used.'),
  );
  $form['header']['h_font_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Font Size'),
    '#default_value' => $default['h_font_size'],
    '#size' => 2,
    '#maxlength' => 3,
    '#description' => t('Set the font size to be used for header text. This is the base value for the scaling applied to other text styles.'),
  );
  $form['header']['h_right_logo'] = array(
    '#type' => 'value',
    '#value' => $default['h_right_logo'],
  );
  if ($default['h_right_logo']) {
    $logo_file = file_load($default['h_right_logo']);
    $picture = array(
      'path' => $logo_file->uri,
      'alt' => 'Header right logo.',
      'title' => $logo_file->filename,
    );
    $form['header']['h_right_logo_img'] = array(
      '#type' => 'item',
      '#title' => t('Logo on the right side'),
      '#markup' => theme('image', $picture),
    );
    $form['header']['h_right_logo_del'] = array(
      '#type' => 'checkbox',
      '#title' => t('Delete right logo.'),
    );
  }
  else {
    $form['header']['h_right_logo_file'] = array(
      '#type' => 'file',
      '#title' => t('Upload right logo'),
      '#size' => 60,
      '#maxlength' => 250,
      '#description' => t("Upload right side logo. If the size of the uploaded image is more than @size, it will be resized to this size.", array(
        '@size' => $default['h_right_logo_size'],
      )),
    );
  }

  // PDF body (page)
  $form['page'] = array(
    '#type' => 'fieldset',
    '#title' => t('Content of the PDF document'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['page']['p_body'] = array(
    '#type' => 'text_format',
    '#base_type' => 'textarea',
    '#title' => t('Page body'),
    '#format' => isset($default['p_body']['format']) ? $default['p_body']['format'] : NULL,
    '#rows' => '10',
    '#default_value' => $default['p_body']['value'],
    '#description' => t("The content of the PDF file can be defined here, the text can be formatted with HTML and CSS tags. The form elements can be referred with the following special strings: !vars.", array(
      '!vars' => '%pagebreak',
    )) . theme('webform_token_help'),
  );
  $form['page']['p_txt_align'] = array(
    '#type' => 'select',
    '#title' => t('Text alignment'),
    '#default_value' => $default['p_txt_align'],
    '#options' => array(
      'L' => t('Align left'),
      'C' => t('Align center'),
      'R' => t('Align right'),
    ),
  );
  $form['page']['p_font_family'] = array(
    '#type' => 'select',
    '#title' => t('Font Family'),
    '#default_value' => $default['p_font_family'],
    '#options' => _webform2pdf_get_available_fonts('page'),
    '#description' => t('Set the font family to be used.'),
  );
  $form['page']['p_font_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Font Size'),
    '#default_value' => $default['p_font_size'],
    '#size' => 2,
    '#maxlength' => 3,
    '#description' => t('Set the font size to be used for header text. This is the base value for the scaling applied to other text styles.'),
  );

  // Footer
  $form['footer'] = array(
    '#type' => 'fieldset',
    '#title' => t('PDF footer'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
  );
  $form['footer']['f_left_logo'] = array(
    '#type' => 'value',
    '#value' => $default['f_left_logo'],
  );
  if ($default['f_left_logo']) {
    $logo_file = file_load($default['f_left_logo']);
    $picture = array(
      'path' => $logo_file->uri,
      'alt' => 'Footer left logo.',
      'title' => $logo_file->filename,
    );
    $form['footer']['f_left_logo_img'] = array(
      '#type' => 'item',
      '#title' => t('Logo on the left side'),
      '#markup' => theme('image', $picture),
    );
    $form['footer']['f_left_logo_del'] = array(
      '#type' => 'checkbox',
      '#title' => t('Delete left side logo.'),
    );
  }
  else {
    $form['footer']['f_left_logo_file'] = array(
      '#type' => 'file',
      '#title' => t('Upload left side logo'),
      '#size' => 60,
      '#maxlength' => 250,
      '#description' => t("Upload left side logo. If the size of the uploaded image is more than @size, it will be resized to this size.", array(
        '@size' => $default['f_left_logo_size'],
      )),
    );
  }
  $form['footer']['f_txt'] = array(
    '#type' => 'textarea',
    '#title' => t('Footer text'),
    '#rows' => '2',
    '#default_value' => $default['f_txt'],
    '#resizable' => FALSE,
    '#description' => t("The PDF footer text. 2 rows maximum. The following special element can be used: %pagenumber - number of the page, %totalpage - total page count.") . theme('webform_token_help'),
  );
  $form['footer']['f_txt_align'] = array(
    '#type' => 'select',
    '#title' => t('Text alignment'),
    '#default_value' => $default['f_txt_align'],
    '#options' => array(
      'L' => t('Align left'),
      'C' => t('Align center'),
      'R' => t('Align right'),
    ),
  );
  $form['footer']['f_font_family'] = array(
    '#type' => 'select',
    '#title' => t('Font Family'),
    '#default_value' => $default['f_font_family'],
    '#options' => _webform2pdf_get_available_fonts('footer'),
    '#description' => t('Set the font family to be used.'),
  );
  $form['footer']['f_font_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Font Size'),
    '#default_value' => $default['f_font_size'],
    '#size' => 2,
    '#maxlength' => 3,
    '#description' => t('Set the font size to be used for header text. This is the base value for the scaling applied to other text styles.'),
  );
  $form['footer']['f_right_logo'] = array(
    '#type' => 'value',
    '#value' => $default['f_right_logo'],
  );
  if ($default['f_right_logo']) {
    $logo_file = file_load($default['f_right_logo']);
    $picture = array(
      'path' => $logo_file->uri,
      'alt' => 'Footer right logo.',
      'title' => $logo_file->filename,
    );
    $form['footer']['f_right_logo_img'] = array(
      '#type' => 'item',
      '#title' => t('Logo on the right side'),
      '#markup' => theme('image', $picture),
    );
    $form['footer']['f_right_logo_del'] = array(
      '#type' => 'checkbox',
      '#title' => t('Delete right logo.'),
    );
  }
  else {
    $form['footer']['f_right_logo_file'] = array(
      '#type' => 'file',
      '#title' => t('Upload right logo'),
      '#size' => 60,
      '#maxlength' => 250,
      '#description' => t("Upload right side logo. If the size of the uploaded image is more than @size, it will be resized to this size.", array(
        '@size' => $default['f_right_logo_size'],
      )),
    );
  }
  $form['url_settings'] = array(
    '#type' => 'fieldset',
    '#title' => t('URL settings'),
    '#collapsible' => TRUE,
    '#collapsed' => TRUE,
    '#states' => array(
      'visible' => array(
        'input[name="enabled"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
  );
  $form['url_settings']['url_prefix'] = array(
    '#type' => 'textfield',
    '#title' => t('Type the URL prefix'),
    '#required' => TRUE,
    '#description' => t('This prefix will be used for generating an unique URLs to PDF'),
    '#field_suffix' => '/',
    '#default_value' => $default['url_prefix'],
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save'),
  );
  return $form;
}