You are here

function webform_entity_print_webform_admin_third_party_settings_form_alter in Webform 6.x

Same name and namespace in other branches
  1. 8.5 modules/webform_entity_print/webform_entity_print.webform.inc \webform_entity_print_webform_admin_third_party_settings_form_alter()

Implements hook_webform_admin_third_party_settings_form_alter().

File

modules/webform_entity_print/webform_entity_print.webform.inc, line 132
Integrates third party settings for the Webform Entity Print module.

Code

function webform_entity_print_webform_admin_third_party_settings_form_alter(&$form, FormStateInterface $form_state) {

  /** @var \Drupal\webform\WebformThirdPartySettingsManagerInterface $third_party_settings_manager */
  $third_party_settings_manager = \Drupal::service('webform.third_party_settings_manager');
  $template_settings = $third_party_settings_manager
    ->getThirdPartySetting('webform_entity_print', 'template') ?: [];
  $export_type_settings = $third_party_settings_manager
    ->getThirdPartySetting('webform_entity_print', 'export_types') ?: [];

  // Set export type default values.
  $export_types = _webform_entity_print_get_export_types();
  foreach ($export_types as $export_type => $definition) {
    $t_args = [
      '@label' => $definition['label'],
    ];
    $export_type_settings += [
      $export_type => [],
    ];
    $export_type_settings[$export_type] += [
      'enabled' => FALSE,
      'link_text' => t('Download @label', $t_args),
      'link_attributes' => [
        'class' => [
          'button',
        ],
      ],
    ];
  }
  _webform_entity_print_form($form['third_party_settings'], $template_settings, $export_type_settings);

  // Add debug settings.
  $form['third_party_settings']['webform_entity_print']['debug'] = [
    '#type' => 'checkbox',
    '#title' => t('Debug generated documents'),
    '#description' => t('If checked, administrators will see debug links below each export type.'),
    '#return_value' => TRUE,
    '#default_value' => $third_party_settings_manager
      ->getThirdPartySetting('webform_entity_print', 'debug') ?: FALSE,
  ];
  $form['#validate'][] = '_webform_entity_print_form_submit';
}