You are here

public function ScheduledPublishWidget::submitSaveEntry in Scheduled Publish 8.3

Saves entry into form state.

1 call to ScheduledPublishWidget::submitSaveEntry()
ScheduledPublishWidget::handleSubmissions in src/Plugin/Field/FieldWidget/ScheduledPublishWidget.php
Handles submissions.

File

src/Plugin/Field/FieldWidget/ScheduledPublishWidget.php, line 507

Class

ScheduledPublishWidget
Plugin implementation of the 'scheduled_publish_widget' widget.

Namespace

Drupal\scheduled_publish\Plugin\Field\FieldWidget

Code

public function submitSaveEntry(FormStateInterface $form_state, $triggering_element) {
  $values = $form_state
    ->getValue($triggering_element['#sp_id']);
  if ($values && isset($values['moderation_state'], $values['value'])) {
    $entries = $form_state
      ->get([
      'scheduled_publish',
      $triggering_element['#sp_id'],
    ]);
    $date = $values['value'];
    $date
      ->setTimezone(new \DateTimeZone(date_default_timezone_get()));
    $date_display = $date
      ->format('d.m.Y - H:i');
    $date
      ->setTimezone(new \DateTimezone(ScheduledPublish::STORAGE_TIMEZONE));
    $entries[] = [
      'date' => $date
        ->format(ScheduledPublish::DATETIME_STORAGE_FORMAT),
      'date_display' => $date_display,
      'state' => $values['moderation_state'],
      'state_display' => NULL,
      'state_options' => [],
      'delta' => NULL,
      'form' => NULL,
    ];
    $form_state
      ->set([
      'scheduled_publish',
      $triggering_element['#sp_id'],
    ], $entries);
    $this
      ->handleEntries($form_state, $triggering_element['#sp_id']);

    // Reset form values.
    $input = $form_state
      ->getUserInput();
    $input[$triggering_element['#sp_id']] = [];
    $form_state
      ->setUserInput($input);
  }
}