public function ModerationInformation::isDefaultRevisionPublished in Drupal 10
Same name and namespace in other branches
- 8 core/modules/content_moderation/src/ModerationInformation.php \Drupal\content_moderation\ModerationInformation::isDefaultRevisionPublished()
- 9 core/modules/content_moderation/src/ModerationInformation.php \Drupal\content_moderation\ModerationInformation::isDefaultRevisionPublished()
File
- core/
modules/ content_moderation/ src/ ModerationInformation.php, line 151
Class
- ModerationInformation
- General service for moderation-related questions about Entity API.
Namespace
Drupal\content_moderationCode
public function isDefaultRevisionPublished(ContentEntityInterface $entity) {
$workflow = $this
->getWorkflowForEntity($entity);
$default_revision = $this->entityTypeManager
->getStorage($entity
->getEntityTypeId())
->load($entity
->id());
// If no default revision could be loaded, the entity has not yet been
// saved. In this case the moderation_state of the unsaved entity can be
// used, since once saved it will become the default.
$default_revision = $default_revision ?: $entity;
// Ensure we are checking all translations of the default revision.
if ($default_revision instanceof TranslatableInterface && $default_revision
->isTranslatable()) {
// Loop through each language that has a translation.
foreach ($default_revision
->getTranslationLanguages() as $language) {
// Load the translated revision.
$translation = $default_revision
->getTranslation($language
->getId());
// If the moderation state is empty, it was not stored yet so no point
// in doing further work.
$moderation_state = $translation->moderation_state->value;
if (!$moderation_state) {
continue;
}
// Return TRUE if a translation with a published state is found.
if ($workflow
->getTypePlugin()
->getState($moderation_state)
->isPublishedState()) {
return TRUE;
}
}
}
return $workflow
->getTypePlugin()
->getState($default_revision->moderation_state->value)
->isPublishedState();
}