You are here

protected function ScheduledPublishWidget::getModerationOptions in Scheduled Publish 8.3

Get moderation options.

2 calls to ScheduledPublishWidget::getModerationOptions()
ScheduledPublishWidget::formElement in src/Plugin/Field/FieldWidget/ScheduledPublishWidget.php
Returns the form for a single field widget.
ScheduledPublishWidget::handleEntries in src/Plugin/Field/FieldWidget/ScheduledPublishWidget.php
Handles entry values, clean-up and ordering.

File

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

Class

ScheduledPublishWidget
Plugin implementation of the 'scheduled_publish_widget' widget.

Namespace

Drupal\scheduled_publish\Plugin\Field\FieldWidget

Code

protected function getModerationOptions($entity) {
  $states = [];

  /** @var \Drupal\content_moderation\ModerationInformation $moderationInformationService */
  $moderationInformationService = \Drupal::service('content_moderation.moderation_information');
  if ($moderationInformationService
    ->isModeratedEntity($entity)) {

    /** @var \Drupal\content_moderation\StateTransitionValidation $transitionValidationService */
    $transitionValidationService = \Drupal::service('content_moderation.state_transition_validation');
    $transitions = $transitionValidationService
      ->getValidTransitions($entity, \Drupal::currentUser());
    foreach ($transitions as $key => $value) {
      $states[$transitions[$key]
        ->to()
        ->id()] = $transitions[$key]
        ->label();
    }
  }
  return $states;
}