You are here

function lang_dropdown_form_submit in Language Switcher Dropdown 7

Same name and namespace in other branches
  1. 6 lang_dropdown.module \lang_dropdown_form_submit()
  2. 7.2 lang_dropdown.module \lang_dropdown_form_submit()

Handles graceful degrade when JS is disabled.

File

./lang_dropdown.module, line 477

Code

function lang_dropdown_form_submit($form, &$form_state) {
  $language_code = check_plain($form_state['values']['lang_dropdown_select']);
  $type = check_plain($form_state['values']['lang_dropdown_type']);
  $language_codes = locale_language_list('language');
  if (!in_array($language_code, $language_codes)) {
    return;
  }
  $types = language_types_configurable(FALSE);
  if (!in_array($type, $types)) {
    $type = 'language';
  }
  $path = drupal_is_front_page() ? '<front>' : $_GET['q'];
  $languages = language_negotiation_get_switch_links($type, $path);
  $language = $languages->links[$language_code];
  $newpath = isset($language['href']) ? $language['href'] : '<front>';

  // language icons module add language when negotiation is session so be careful
  // we need to get rid of that language icons bug by checking for native property
  $language_object = isset($language['language']) && isset($language['language']->native) ? $language['language'] : NULL;
  drupal_goto($newpath, array(
    'language' => $language_object,
    'query' => isset($language['query']) ? $language['query'] : '',
  ));
}