public function MultipleUpdatesForm::handleStates in Scheduled Publish 8.3
Handles state values, clean-up and ordering.
2 calls to MultipleUpdatesForm::handleStates()
- MultipleUpdatesForm::handleSubmissions in src/
Form/ MultipleUpdatesForm.php - Handles submissions.
- MultipleUpdatesForm::submitSaveState in src/
Form/ MultipleUpdatesForm.php - Saves state into form state.
File
- src/
Form/ MultipleUpdatesForm.php, line 570 - Contains \Drupal\scheduled_publish\Form\MultipleUpdatesForm.
Class
Namespace
Drupal\scheduled_publish\FormCode
public function handleStates(FormStateInterface $form_state) {
$entity = $form_state
->get([
'scheduled_publish',
'first_entity',
]);
$orig_status = $entity->moderation_state->value;
$m_options = $this
->getModerationOptions($entity);
$states = $form_state
->get([
'scheduled_publish',
'states',
]);
// Make sure states are ordered correctly.
$this
->handleStateOrdering($states);
foreach ($states as $key => $state) {
if (isset($m_options[$state['state']])) {
$states[$key]['state_display'] = $m_options[$state['state']];
$states[$key]['state_options'] = $m_options;
$entity->moderation_state->value = $state['state'];
$m_options = $this
->getModerationOptions($entity);
}
else {
// Delete invalid state changes.
unset($states[$key]);
}
}
$entity->moderation_state->value = $orig_status;
// Adjust ordering in case any invalid entries got removed.
$this
->handleStateOrdering($states);
$form_state
->set([
'scheduled_publish',
'states',
], $states);
}