You are here

public function EventAnEnrollActionForm::buildForm in Open Social 8.6

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  2. 8.3 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  3. 8.4 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  4. 8.5 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  5. 8.7 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  6. 8.8 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  7. 10.3.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  8. 10.0.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  9. 10.1.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()
  10. 10.2.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollActionForm::buildForm()

Form constructor.

Parameters

array $form: An associative array containing the structure of the form.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

Return value

array The form structure.

Overrides EnrollActionForm::buildForm

File

modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollActionForm.php, line 28

Class

EventAnEnrollActionForm
Class EventAnEnrollActionForm.

Namespace

Drupal\social_event_an_enroll\Form

Code

public function buildForm(array $form, FormStateInterface $form_state, Node $node = NULL) {
  $nid = $node
    ->id();
  $token = $this
    ->getRequest()->query
    ->get('token');
  if (!empty($token) && \Drupal::service('social_event_an_enroll.service')
    ->tokenExists($token, $nid)) {
    $form['event'] = [
      '#type' => 'hidden',
      '#value' => $nid,
    ];
    $form['enroll_for_this_event'] = [
      '#type' => 'submit',
      '#value' => $this
        ->t('Enrolled'),
      '#attributes' => [
        'class' => [
          'btn',
          'btn-accent',
          'btn-lg',
          'btn-raised',
          'brand-bg-accent',
          'dropdown-toggle',
          'waves-effect',
        ],
        'autocomplete' => 'off',
        'data-toggle' => 'dropdown',
        'aria-haspopup' => 'true',
        'aria-expanded' => 'false',
        'data-caret' => 'true',
      ],
    ];
    $cancel_text = $this
      ->t('Cancel enrollment');
    $form['feedback_user_has_enrolled'] = [
      '#markup' => '<ul class="dropdown-menu dropdown-menu-right"><li><a href="#" class="enroll-form-submit"> ' . $cancel_text . ' </a></li></ul>',
    ];
    $form['#attached']['library'][] = 'social_event/form_submit';
  }
  else {
    if ($this
      ->eventHasBeenFinished($node)) {
      $form['event_enrollment'] = [
        '#type' => 'submit',
        '#value' => $this
          ->t('Event has passed'),
        '#disabled' => TRUE,
        '#attributes' => [
          'class' => [
            'btn',
            'btn-accent',
            'btn-lg',
            'btn-raised',
            'brand-bg-accent',
            'waves-effect',
          ],
        ],
      ];
    }
    else {
      $attributes = [
        'class' => [
          'use-ajax',
          'js-form-submit',
          'form-submit',
          'btn',
          'btn-accent',
          'btn-lg',
        ],
        'data-dialog-type' => 'modal',
        'data-dialog-options' => json_encode([
          'title' => t('Enroll in') . ' ' . strip_tags($node
            ->getTitle()),
          'width' => 'auto',
        ]),
      ];
      $form['event_enrollment'] = [
        '#type' => 'link',
        '#title' => $this
          ->t('Enroll'),
        '#url' => Url::fromRoute('social_event_an_enroll.enroll_dialog', [
          'node' => $nid,
        ]),
        '#attributes' => $attributes,
      ];
    }
  }
  $form['#cache'] = [
    'max-age' => 0,
  ];
  return $form;
}