You are here

function lang_dropdown_language_switch_links_alter in Language Switcher Dropdown 7.2

Implements hook_language_switch_links_alter().

File

./lang_dropdown.module, line 467
Language dropdown select module main file.

Code

function lang_dropdown_language_switch_links_alter(&$links, $type, $path) {
  if ($type !== LANGUAGE_TYPE_CONTENT || empty($links)) {
    return;
  }
  $menu_item = menu_get_item($path);
  if (empty($menu_item) || !isset($menu_item['page_arguments'])) {
    return;
  }
  $page_arguments = is_array($menu_item['page_arguments']) ? array_shift($menu_item['page_arguments']) : NULL;
  if (empty($page_arguments) || !isset($page_arguments->translations) || !isset($page_arguments->translations->data)) {
    return;
  }
  $translations_data = $page_arguments->translations->data;
  foreach ($links as $langcode => $link) {
    if (!isset($translations_data[$langcode])) {
      unset($links[$langcode]['href']);
      $links[$langcode]['attributes']['class'][] = 'locale-untranslated';
      continue;
    }
    $translation_access = module_exists('entity_translation') && entity_translation_access($translations_data[$langcode]['entity_type'], $translations_data[$langcode]);
    if (!$translation_access) {
      unset($links[$langcode]['href']);
      $links[$langcode]['attributes']['class'][] = 'locale-untranslated';
    }
  }
}