public function EventAnEnrollForm::submitForm in Open Social 8.4
Same name and namespace in other branches
- 8.9 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 8.3 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 8.5 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 8.6 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 8.7 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 8.8 modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 10.3.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 10.0.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 10.1.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
- 10.2.x modules/social_features/social_event/modules/social_event_an_enroll/src/Form/EventAnEnrollForm.php \Drupal\social_event_an_enroll\Form\EventAnEnrollForm::submitForm()
Form submission handler.
Parameters
array $form: An associative array containing the structure of the form.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Overrides EnrollActionForm::submitForm
File
- modules/
social_features/ social_event/ modules/ social_event_an_enroll/ src/ Form/ EventAnEnrollForm.php, line 115
Class
- EventAnEnrollForm
- Class EventAnEnrollForm.
Namespace
Drupal\social_event_an_enroll\FormCode
public function submitForm(array &$form, FormStateInterface $form_state) {
$current_user = $this->currentUser;
$uid = $current_user
->id();
if ($current_user
->isAnonymous()) {
$nid = $form_state
->getValue('field_event');
$values = $form_state
->getValues();
$values['user_id'] = $uid;
$values['field_account'] = $uid;
$values['field_enrollment_status'] = '1';
// Check if there is enrollment with the same email.
$conditions = [
'field_email' => $values['field_email'],
'field_event' => $nid,
];
$enrollments = $this->entityStorage
->loadByProperties($conditions);
if ($enrollment = array_pop($enrollments)) {
$values['field_token'] = $enrollment
->get('field_token')
->getString();
drupal_set_message($this
->t('You have been already enrolled to this event. You have also received a notification via email.'));
}
else {
$values['field_token'] = Crypt::randomBytesBase64();
// Create a new enrollment for the event.
$enrollment = EventEnrollment::create($values);
$enrollment
->save();
// Invalidate cache for our enrollment cache tag in
// social_event_node_view_alter().
$cache_tag = 'enrollment:' . $nid . '-' . $uid;
Cache::invalidateTags([
$cache_tag,
]);
drupal_set_message($this
->t('You have successfully enrolled to this event. You have also received a notification via email.'));
}
// Redirect anonymous use to login page before enrolling to an event.
$form_state
->setRedirect('entity.node.canonical', [
'node' => $nid,
], [
'query' => [
'token' => $values['field_token'],
],
]);
// Send email if the setting is enabled.
$event_an_enroll_config = $this
->config('social_event_an_enroll.settings');
if ($event_an_enroll_config
->get('event_an_enroll_email_notify')) {
social_event_an_enroll_send_mail($values);
}
}
}