diff --git a/lang_dropdown.module b/lang_dropdown.module index f049574..523bbbd 100644 --- a/lang_dropdown.module +++ b/lang_dropdown.module @@ -171,7 +171,7 @@ function lang_dropdown_block_view($type) { */ function lang_dropdown_form($form, &$form_state, $languages) { - global $language_url; + global $language; $settings = _lang_dropdown_get_settings(); @@ -191,6 +191,8 @@ function lang_dropdown_form($form, &$form_state, $languages) { // Now we iterate on $languages to build the needed options for the select element. foreach ($languages->links as $lang_code => $lang_options) { + $language_object = isset($lang_options['language']) ? $lang_options['language'] : (object) array('language' => $lang_code); + // The language is not enabled on this domain if ($domain_locale_exists && !array_key_exists($lang_code, $domain_languages)) continue; @@ -203,14 +205,14 @@ function lang_dropdown_form($form, &$form_state, $languages) { // Set the selected option to be ready for #default_value in select form element. if (isset($lang_options['href']) && ($lang_options['href'] == $_GET['q'] || ($lang_options['href'] == '' && drupal_is_front_page())) -&& (empty($lang_options['language']) || $lang_options['language']->language == $language_url->language)) { +&& ($lang_code == $language->language)) { $selected_option = $lang_code; // Icon for the selected language if (module_exists('languageicons') && !$settings['js_widget']) { $selected_option_language_icon = theme('languageicons_icon', array( - 'language' => $lang_options['language'], + 'language' => $language_object, 'title' => $language_names[$lang_code], )); } @@ -222,7 +224,7 @@ function lang_dropdown_form($form, &$form_state, $languages) { $hidden_elements[$lang_code] = array( '#type' => 'hidden', '#default_value' => url($href, array( - 'language' => $lang_options['language'], + 'language' => $language_object, 'query' => isset($lang_options['query']) ? $lang_options['query'] : '', //'absolute' => TRUE, )), @@ -231,7 +233,7 @@ function lang_dropdown_form($form, &$form_state, $languages) { // Handle flags with Language icons module using JS widget. if (module_exists('languageicons') && $settings['js_widget']) { $languageicons_path = variable_get('languageicons_path', drupal_get_path('module', 'languageicons') . '/flags/*.png'); - $js_settings['languageicons'][$lang_code] = file_create_url(str_replace('*', $lang_options['language']->language, $languageicons_path)); + $js_settings['languageicons'][$lang_code] = file_create_url(str_replace('*', $lang_code, $languageicons_path)); } } @@ -315,7 +317,7 @@ function lang_dropdown_form_submit($form, &$form_state) { $newpath = isset($language['href']) ? $language['href'] : ''; drupal_goto($newpath, array( - 'language' => $language['language'], + 'language' => isset($language['language']) ? $language['language'] : (object) array('language' => $language_code), 'query' => isset($language['query']) ? $language['query'] : '', //'absolute' => TRUE, ));