function lang_dropdown_form_submit in Language Switcher Dropdown 7
Same name and namespace in other branches
- 6 lang_dropdown.module \lang_dropdown_form_submit()
- 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'] : '',
));
}