You are here

public static function AdminHelper::bulkLatestRevision in moderated content bulk publish 1.0.x

Same name and namespace in other branches
  1. 2.0.x src/AdminHelper.php \Drupal\moderated_content_bulk_publish\AdminHelper::bulkLatestRevision()

Retrieve the latest node revision of $lang.

1 call to AdminHelper::bulkLatestRevision()
AdminHelper::bulkPublishShutdown in src/AdminHelper.php
Helper function for doing stuff after shutdown function to ensure previous db transaction is committed. Make sure the moderation state is processed correctly.

File

src/AdminHelper.php, line 101

Class

AdminHelper

Namespace

Drupal\moderated_content_bulk_publish

Code

public static function bulkLatestRevision($id, &$vid, $lang, $entity_type = 'node') {
  $query = \Drupal::entityTypeManager()
    ->getStorage($entity_type)
    ->getQuery();
  $query
    ->latestRevision();
  if ($entity_type == 'node') {
    $query
      ->condition('nid', $id, '=');
  }
  if ($entity_type == 'taxonomy_term') {
    $query
      ->condition('tid', $id, '=');
  }
  if ($entity_type == 'paragraph') {
    $query
      ->condition('id', $id, '=');
  }
  if ($entity_type == 'user') {

    // Likely no moderation states for user entities anyway but just in case.
    $query
      ->condition('uid', $id, '=');
  }
  $latestRevisionResult = $query
    ->execute();
  if (count($latestRevisionResult)) {
    $node_revision_id = key($latestRevisionResult);
    $vid = $node_revision_id;
    $latestRevision = \Drupal::entityTypeManager()
      ->getStorage($entity_type)
      ->loadRevision($node_revision_id);
    if ($latestRevision
      ->hasTranslation($lang) && $latestRevision
      ->language()
      ->getId() != $lang) {
      $latestRevision = $latestRevision
        ->getTranslation($lang);
    }
    return $latestRevision;
  }
  return FALSE;
}