Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ContentModerationState.php

function ContentModerationState::loadFromModeratedEntity

Loads a content moderation state entity.

@internal This method should only be called by code directly handling the ContentModerationState entity objects.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: A moderated entity object.

Return value

\Drupal\content_moderation\Entity\ContentModerationStateInterface|null The related content moderation state or NULL if none could be found.

4 calls to ContentModerationState::loadFromModeratedEntity()
EntityOperations::entityDelete in core/modules/content_moderation/src/EntityOperations.php
EntityOperations::entityRevisionDelete in core/modules/content_moderation/src/EntityOperations.php
EntityOperations::entityTranslationDelete in core/modules/content_moderation/src/EntityOperations.php
EntityOperations::updateOrCreateFromEntity in core/modules/content_moderation/src/EntityOperations.php
Creates or updates the moderation state of an entity.

File

core/modules/content_moderation/src/Entity/ContentModerationState.php, line 134

Class

ContentModerationState
Defines the Content moderation state entity.

Namespace

Drupal\content_moderation\Entity

Code

public static function loadFromModeratedEntity(EntityInterface $entity) {
    $content_moderation_state = NULL;
    $moderation_info = \Drupal::service('content_moderation.moderation_information');
    if ($moderation_info->isModeratedEntity($entity)) {
        
        /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
        $storage = \Drupal::entityTypeManager()->getStorage('content_moderation_state');
        // New entities may not have a loaded revision ID at this point, but the
        // creation of a content moderation state entity may have already been
        // triggered elsewhere. In this case we have to match on the revision ID
        // (instead of the loaded revision ID).
        $revision_id = $entity->getLoadedRevisionId() ?: $entity->getRevisionId();
        $ids = $storage->getQuery()
            ->accessCheck(FALSE)
            ->condition('content_entity_type_id', $entity->getEntityTypeId())
            ->condition('content_entity_id', $entity->id())
            ->condition('workflow', $moderation_info->getWorkflowForEntity($entity)
            ->id())
            ->condition('content_entity_revision_id', $revision_id)
            ->allRevisions()
            ->execute();
        if ($ids) {
            
            /** @var \Drupal\content_moderation\Entity\ContentModerationStateInterface $content_moderation_state */
            $content_moderation_state = $storage->loadRevision(key($ids));
        }
    }
    return $content_moderation_state;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal