You are here

function social_event_form_alter in Open Social 8.5

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_event/social_event.module \social_event_form_alter()
  2. 8.3 modules/social_features/social_event/social_event.module \social_event_form_alter()
  3. 8.4 modules/social_features/social_event/social_event.module \social_event_form_alter()
  4. 8.6 modules/social_features/social_event/social_event.module \social_event_form_alter()
  5. 8.7 modules/social_features/social_event/social_event.module \social_event_form_alter()
  6. 8.8 modules/social_features/social_event/social_event.module \social_event_form_alter()
  7. 10.3.x modules/social_features/social_event/social_event.module \social_event_form_alter()
  8. 10.0.x modules/social_features/social_event/social_event.module \social_event_form_alter()
  9. 10.1.x modules/social_features/social_event/social_event.module \social_event_form_alter()
  10. 10.2.x modules/social_features/social_event/social_event.module \social_event_form_alter()

Implements hook_form_alter().

File

modules/social_features/social_event/social_event.module, line 459
The Social event module.

Code

function social_event_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  switch ($form_id) {
    case 'node_event_edit_form':

      // Set allow event enrollment checked by default for existing events.
      $entity = $form_state
        ->getFormObject()
        ->getEntity();
      if ($entity
        ->hasField('field_event_enroll') && $entity->field_event_enroll
        ->isEmpty()) {
        $form['field_event_enroll']['widget']['value']['#default_value'] = TRUE;
      }
    case 'node_event_form':
      $form['event_all_day'] = [
        '#type' => 'checkbox',
        '#title' => t('All day'),
      ];

      // Set default value and fieldgroup for all day checkbox.
      if ($date = $form['field_event_date']['widget'][0]['value']['#default_value']) {
        $all_day_value = $date instanceof DrupalDateTime && social_event_date_is_all_day($date);
        $form['event_all_day']['#default_value'] = $all_day_value;
      }
      $form['#fieldgroups']['group_date_time']->children[] = 'event_all_day';
      $form['#group_children']['event_all_day'] = 'group_date_time';
      $form['#after_build'][] = 'social_event_date_after_build';
      break;

    // Hide Enroll button if enrollment is disabled for this event.
    case 'enroll_action_form':
      $node = \Drupal::routeMatch()
        ->getParameter('node');
      if (!$node instanceof NodeInterface) {
        $node = \Drupal::entityTypeManager()
          ->getStorage('node')
          ->load($node);
      }
      if ($node instanceof NodeInterface) {
        $form['enroll_for_this_event']['#access'] = \Drupal::service('social_event.enroll')
          ->isEnabled($node);
      }
      break;
  }
}