You are here

function webform_encrypt_form_webform_ui_element_form_alter in Webform Encrypt 8

Implements hook_form_FORM_ID_alter().

File

./webform_encrypt.module, line 13
Main module file for the Webform Encrypt module.

Code

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

  /** @var \Drupal\webform\WebformElementManagerInterface $element_manager */
  $element_manager = \Drupal::service('plugin.manager.webform.element');
  $element = $form_state
    ->getBuildInfo()['callback_object']
    ->getElement();
  $element_handler = $element_manager
    ->getElementInstance($element);

  // Checks whether the element carries a value.
  // Only input elements are allowed to be encrypted.
  $is_input_element = $element_handler
    ->isInput($element);
  if ($is_input_element) {

    // To provide the fieldset for encryption fields on element config form.
    $form['element_encrypt'] = [
      '#type' => 'details',
      '#title' => t('Encryption'),
      '#group' => 'tab_advanced',
    ];

    // To provide the encryption fields for webform elements.
    $form['element_encrypt']['encrypt'] = [
      '#type' => 'webform_element_encrypt',
      '#title' => t('Encryption'),
      '#title_display' => 'hidden',
    ];
  }
}