You are here

function lang_dropdown_form_submit in Language Switcher Dropdown 7.2

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

Handles graceful degrade when JS is disabled.

File

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

Code

function lang_dropdown_form_submit($form, &$form_state) {
  $language_code = check_plain($form_state['values']['lang_dropdown_select']);
  $type = $form_state['values']['lang_dropdown_type'];
  $tohome = $form_state['values']['lang_dropdown_tohome'];
  $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']) && $tohome == 0 ? $language['href'] : '<front>';
  if (!isset($language['query'])) {
    $language['query'] = drupal_get_query_parameters();
  }
  $form_state['redirect'] = array(
    $newpath,
    $language,
  );
}