public static function AdminHelper::bulkLatestRevision in moderated content bulk publish 2.0.x
Same name and namespace in other branches
- 1.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 100
Class
Namespace
Drupal\moderated_content_bulk_publishCode
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;
}