public function ScheduledPublishWidget::handleEntries in Scheduled Publish 8.3
Handles entry values, clean-up and ordering.
3 calls to ScheduledPublishWidget::handleEntries()
- ScheduledPublishWidget::handleSubmissions in src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php - Handles submissions.
- ScheduledPublishWidget::prepareFormState in src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php - Prepares the form state for the current widget.
- ScheduledPublishWidget::submitSaveEntry in src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php - Saves entry into form state.
File
- src/
Plugin/ Field/ FieldWidget/ ScheduledPublishWidget.php, line 536
Class
- ScheduledPublishWidget
- Plugin implementation of the 'scheduled_publish_widget' widget.
Namespace
Drupal\scheduled_publish\Plugin\Field\FieldWidgetCode
public function handleEntries(FormStateInterface $form_state, $field_name) {
$formObject = $form_state
->getFormObject();
$entity = $formObject
->getEntity();
$orig_status = $entity->moderation_state->value;
$m_options = $this
->getModerationOptions($entity);
$entries = $form_state
->get([
'scheduled_publish',
$field_name,
]);
// Make sure entries are ordered correctly.
$this
->handleEntryOrdering($entries);
foreach ($entries as $key => $entry) {
if (isset($m_options[$entry['state']])) {
$entries[$key]['state_display'] = $m_options[$entry['state']];
$entries[$key]['state_options'] = $m_options;
$entity->moderation_state->value = $entry['state'];
$m_options = $this
->getModerationOptions($entity);
}
else {
// Delete invalid state changes.
unset($entries[$key]);
}
}
$entity->moderation_state->value = $orig_status;
// Adjust ordering in case any invalid entries got removed.
$this
->handleEntryOrdering($entries);
$form_state
->set([
'scheduled_publish',
$field_name,
], $entries);
}