You are here

public function ApplyForRoleApplicationForm::submitForm in Apply for role 8

Form Submission handler

Overrides FormInterface::submitForm

File

src/Form/ApplyForRoleApplicationForm.php, line 98

Class

ApplyForRoleApplicationForm

Namespace

Drupal\apply_for_role\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  $config = $this
    ->config('apply_for_role.settings');
  $submited_values = $form_state
    ->cleanValues()
    ->getValues();
  $current_user_uid = \Drupal::currentUser()
    ->id();

  // Handle RID's differently based on whether multiple roles per app are allowed.
  if ($config
    ->get('multiple_roles_per_app')) {
    $rids = $submited_values['application_roles'];
    foreach ($rids as $key => $value) {
      if (!$value) {
        unset($rids[$key]);
      }
    }
  }
  else {

    // Just grab the singular value and place it in an array to send onwards!
    $rids = array(
      $submited_values['application_roles'],
    );
  }
  $message = isset($submited_values['application_message']) ? $submited_values['application_message'] : NULL;

  // Creat an application with the above gathered information
  $this->application_manager
    ->create_application($current_user_uid, $rids, $message);
  drupal_set_message(t('Thank you for submitting an applicaton. Your requested is currently queued for review.'));
}