You are here

protected function HandleChannelLanguages::removeGlobalLanguagesIfChannelLanguageExist in Acquia Content Hub 8.2

Remove global languages if channel exists.

Parameters

array $channelLanguages: Channel languages.

Return value

array Filtered channel languages.

1 call to HandleChannelLanguages::removeGlobalLanguagesIfChannelLanguageExist()
HandleChannelLanguages::getChannelLanguages in src/EventSubscriber/PruneCdf/HandleChannelLanguages.php
Removes languages that don't belong to the channel.

File

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

Class

HandleChannelLanguages
Handles channel languages during pruning.

Namespace

Drupal\acquia_contenthub\EventSubscriber\PruneCdf

Code

protected function removeGlobalLanguagesIfChannelLanguageExist(array $channelLanguages) {
  $langcodes = array_keys($channelLanguages);
  foreach ($channelLanguages as $langcode => $language) {
    $channelName = $this
      ->getLanguageChannelName($language);

    // If language is global (no channel)
    // but there are other languages with the same prefix, remove it.
    if (empty($channelName) && !empty(preg_grep("/^{$langcode}_/", $langcodes))) {
      unset($channelLanguages[$langcode]);
    }
  }
  return $channelLanguages;
}