You are here

function select_registration_roles_form_alter in Select registration roles 8

Implements hook_form_alter().

File

./select_registration_roles.module, line 20

Code

function select_registration_roles_form_alter(&$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  if ($form_id == "user_register_form") {
    $roles = array();
    $config = \Drupal::configFactory()
      ->getEditable('select_registration_roles.settings');
    $display_roles = $config
      ->get('select_registration_roles_setby_admin');
    if (empty($display_roles)) {
      $form['select_roles'] = array(
        '#type' => 'checkboxes',
        '#title' => t('You must configure <a href = "!configure">role field on the registration form.</a>', array(
          '!configure' => \Drupal::url('select_registration_roles.roles_set_by_admin'),
        )),
        '#options' => $roles,
      );
    }
    else {
      $approval_roles = $config
        ->get('select_registration_roles_admin_approval');
      $display_roles = $config
        ->get('select_registration_roles_setby_admin');
      foreach ($display_roles as $role_id => $role_name) {
        if ($role_name !== 0) {
          if ($approval_roles[$role_id] === $display_roles[$role_id]) {
            $role_name .= t("<i>*needs administration approval</i>");
          }
          $roles[$role_id] = $role_name;
          $form['select_roles'] = array(
            '#type' => 'radios',
            '#title' => t('Choose a role'),
            '#options' => $roles,
            '#cache' => array(
              'max-age' => -1,
            ),
          );
        }
      }
    }
    $form['actions']['submit']['#submit'][] = 'select_registration_roles_form_submit';
  }
}