You are here

public static function AdminHelper::bulkPublishShutdown 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::bulkPublishShutdown()

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 64

Class

AdminHelper

Namespace

Drupal\moderated_content_bulk_publish

Code

public static function bulkPublishShutdown($entity, $langcode, $moderation_state) {
  if (!empty($moderation_state)) {
    $vid = 0;
    $latest_revision = self::bulkLatestRevision($entity
      ->id(), $vid, $langcode, $entity
      ->getEntityTypeId());
    $latest_state = $moderation_state;
    $latest_is_valid = TRUE;
    if ($latest_revision == FALSE) {
      $latest_is_valid = FALSE;
    }
    else {
      $latest_state = $latest_revision
        ->get('moderation_state')
        ->getString();
    }
    if ($latest_is_valid) {
      $latest_revision
        ->setSyncing(TRUE);
      $latest_revision
        ->setRevisionTranslationAffected(TRUE);
      $latest_revision
        ->set('moderation_state', $moderation_state);
      $latest_revision
        ->save();

      // Ensure the alias gets updated.
      \Drupal::service('pathauto.generator')
        ->updateEntityAlias($latest_revision, 'insert', array(
        'language' => $langcode,
      ));
      \Drupal::service('pathauto.generator')
        ->updateEntityAlias($latest_revision, 'update', array(
        'language' => $langcode,
      ));
    }
    else {

      // Ensure the alias gets updated.
      \Drupal::service('pathauto.generator')
        ->updateEntityAlias($entity, 'insert', array(
        'language' => $langcode,
      ));
      \Drupal::service('pathauto.generator')
        ->updateEntityAlias($entity, 'update', array(
        'language' => $langcode,
      ));
    }
  }
  else {

    // Ensure the alias gets updated.
    \Drupal::service('pathauto.generator')
      ->updateEntityAlias($entity, 'insert', array(
      'language' => $langcode,
    ));
    \Drupal::service('pathauto.generator')
      ->updateEntityAlias($entity, 'update', array(
      'language' => $langcode,
    ));
  }
}