You are here

function multiple_registration_form_field_config_edit_form_alter in Multiple Registration 8.2

Same name and namespace in other branches
  1. 8 multiple_registration.module \multiple_registration_form_field_config_edit_form_alter()
  2. 3.x multiple_registration.module \multiple_registration_form_field_config_edit_form_alter()

Implements hook_form_FORM_ID_alter().

File

./multiple_registration.module, line 85
Contains multiple_registration.module.

Code

function multiple_registration_form_field_config_edit_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $field = $form_state
    ->getFormObject()
    ->getEntity();
  $instance = $field;
  if ($instance
    ->get('entity_type') === 'user' && !$instance
    ->isDeleted() && !$instance
    ->isReadonly()) {
    $reg_pages = \Drupal::service('multiple_registration.service')
      ->getRegistrationPages();
    if ($reg_pages) {
      $options[MultipleRegistrationController::MULTIPLE_REGISTRATION_GENERAL_REGISTRATION_ID] = t('General registered users');
      foreach ($reg_pages as $rid => $page) {
        $options[$rid] = t('Users with %role role', [
          '%role' => $page['role_name'],
        ]);
      }
      $descr = t('Specify which of options are actual for this field. If nothing is selected, field is available for all variants.');
      $def_val = $instance
        ->getThirdPartySetting('multiple_registration', 'user_additional_register_form', []);
      $form['field']['third_party_settings']['multiple_registration'] = [
        '#type' => 'checkboxes',
        '#title' => t('This field is needed for:'),
        '#description' => $descr,
        '#default_value' => $def_val,
        '#options' => $options,
      ];
      if (!isset($form['required']['#default_value']) || !$form['required']['#default_value']) {
        $descr = t('Note: works only if "Required field" is unchecked!');
        $def_val = $instance
          ->getThirdPartySetting('multiple_registration', 'user_additional_register_form_required', []);
        $form['field']['third_party_settings']['multiple_registration_required'] = [
          '#type' => 'checkboxes',
          '#title' => t('This field is required for:'),
          '#description' => $descr,
          '#default_value' => $def_val,
          '#options' => $options,
        ];
      }
      $form['actions']['submit']['#submit'][] = 'multiple_registration_field_config_form_submit';
    }
  }
}