You are here

function opigno_calendar_event_opigno_calendar_event_form_validate in Opigno calendar 8

Same name and namespace in other branches
  1. 3.x opigno_calendar.module \opigno_calendar_event_opigno_calendar_event_form_validate()

Custom validation.

1 string reference to 'opigno_calendar_event_opigno_calendar_event_form_validate'
opigno_calendar_form_alter in ./opigno_calendar.module
Implements hook_form_alter().

File

./opigno_calendar.module, line 237
Contains opigno_calendar.module.

Code

function opigno_calendar_event_opigno_calendar_event_form_validate(&$form, FormStateInterface $form_state) {
  if (!isset($_GET["ajax_form"])) {
    $no_errors = TRUE;
    $title = $form_state
      ->getValue('title');
    if (empty($title[0]['value'])) {
      $form_state
        ->setErrorByName('title', t("Please enter a title!"));
      $no_errors = FALSE;
    }
    $date = $form_state
      ->getValue('date_daterange');
    if (isset($date[0]["value_wrapper"]["date"]) && empty($date[0]["value_wrapper"]["date"])) {
      $form_state
        ->setErrorByName('date_daterange', t("Please select start date!"));
      $no_errors = FALSE;
    }
    if (isset($date[0]["end_value_wrapper"]["date"]) && empty($date[0]["end_value_wrapper"]["date"])) {
      $form_state
        ->setErrorByName('date_daterange', t("Please select end date!"));
      $no_errors = FALSE;
    }
    if ($no_errors) {
      $storage = $form_state
        ->getStorage();
      if (!empty($storage["current_user_id"])) {
        $add_as_member = FALSE;
        $members = $form_state
          ->getValue('field_calendar_event_members');
        if ($form["#form_id"] == 'opigno_calendar_event_opigno_calendar_event_form') {

          // If event was just created.
          $add_as_member = TRUE;
        }
        else {

          // If event was edited.
          $route = \Drupal::routeMatch();
          if ($event = $route
            ->getParameter('opigno_calendar_event')) {

            // Get event author.
            $author_id = $event
              ->get('uid')
              ->getValue();
            $author_id = $author_id[0]['target_id'];
            if ($author_id == $storage["current_user_id"] && !in_array($storage["current_user_id"], array_column($members, 'target_id'))) {
              $add_as_member = TRUE;
            }
          }
        }
        if ($add_as_member) {

          // Add current user as a member if he is an author.
          $members[] = [
            'target_id' => $storage["current_user_id"],
          ];
          $form_state
            ->setValue('field_calendar_event_members', $members);
        }
      }
    }
  }
}