You are here

public function HandleChannelLanguages::onPruneCdf in Acquia Content Hub 8.2

Handles channel languages.

Parameters

\Drupal\acquia_contenthub\Event\PruneCdfEntitiesEvent $event: The prune event.

File

src/EventSubscriber/PruneCdf/HandleChannelLanguages.php, line 48

Class

HandleChannelLanguages
Handles channel languages during pruning.

Namespace

Drupal\acquia_contenthub\EventSubscriber\PruneCdf

Code

public function onPruneCdf(PruneCdfEntitiesEvent $event) {
  $cdf = $event
    ->getCdf();
  $allLanguages = $this
    ->getCdfConfigurableLanguages($cdf);
  $channelLanguages = $this
    ->getChannelLanguages($allLanguages);
  $removedLanguages = [];
  foreach ($allLanguages as $langcode => $language) {
    if (!isset($channelLanguages[$langcode])) {
      $cdf
        ->removeCdfEntity($language
        ->getUuid());
      $removedLanguages[$langcode] = $language;
    }
  }
  if (empty($removedLanguages)) {
    return;
  }
  foreach ($cdf
    ->getEntities() as $cdfEntity) {
    $this
      ->removeDependenciesToNotChannelLanguages($cdfEntity, $removedLanguages);
  }
}