diff options
author | Dries Buytaert <dries@buytaert.net> | 2011-05-28 09:31:58 -0400 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2011-05-28 09:31:58 -0400 |
commit | 1e1c9b71fb7c66be87778ef423238a94a3fa4cd3 (patch) | |
tree | 20f60a69f94a1446e199f6768175dc1c01606ec7 /modules/locale/locale.admin.inc | |
parent | 7174b01bdac3fa7495a1a9b4f6139dfbcdfbae7c (diff) | |
parent | fad397b1f131fe10674d29bd4d49ba404c1cd070 (diff) | |
download | brdo-1e1c9b71fb7c66be87778ef423238a94a3fa4cd3.tar.gz brdo-1e1c9b71fb7c66be87778ef423238a94a3fa4cd3.tar.bz2 |
Merge branch '7.x' of git.drupal.org:project/drupal into 7.x
Diffstat (limited to 'modules/locale/locale.admin.inc')
-rw-r--r-- | modules/locale/locale.admin.inc | 32 |
1 files changed, 10 insertions, 22 deletions
diff --git a/modules/locale/locale.admin.inc b/modules/locale/locale.admin.inc index de16133fb..d8201dbf2 100644 --- a/modules/locale/locale.admin.inc +++ b/modules/locale/locale.admin.inc @@ -541,6 +541,12 @@ function _locale_languages_configure_form_language_table(&$form, $type) { asort($providers_weight); foreach ($providers_weight as $id => $weight) { + // A language provider might be no more available if the defining module has + // been disabled after the last configuration saving. + if (!isset($language_providers[$id])) { + continue; + } + $enabled = isset($enabled_providers[$id]); $provider = $language_providers[$id]; @@ -658,7 +664,6 @@ function theme_locale_languages_configure_form($variables) { * Submit handler for language negotiation settings. */ function locale_languages_configure_form_submit($form, &$form_state) { - $language_types = array(); $configurable_types = $form['#language_types']; foreach ($configurable_types as $type) { @@ -666,7 +671,6 @@ function locale_languages_configure_form_submit($form, &$form_state) { $enabled_providers = $form_state['values'][$type]['enabled']; $enabled_providers[LANGUAGE_NEGOTIATION_DEFAULT] = TRUE; $providers_weight = $form_state['values'][$type]['weight']; - $language_types[$type] = TRUE; foreach ($providers_weight as $id => $weight) { if ($enabled_providers[$id]) { @@ -680,27 +684,11 @@ function locale_languages_configure_form_submit($form, &$form_state) { variable_set("locale_language_providers_weight_$type", $providers_weight); } - // Save non-configurable language types negotiation. - $language_types_info = language_types_info(); - $defined_providers = $form['#language_providers']; - foreach ($language_types_info as $type => $info) { - if (isset($info['fixed'])) { - $language_types[$type] = FALSE; - $negotiation = array(); - foreach ($info['fixed'] as $weight => $id) { - if (isset($defined_providers[$id])) { - $negotiation[$id] = $defined_providers[$id]; - $negotiation[$id]['weight'] = $weight; - } - } - language_negotiation_set($type, $negotiation); - } - } - - // Save language types. - variable_set('language_types', $language_types); + // Update non-configurable language types and the related language negotiation + // configuration. + language_types_set(); - $form_state['redirect'] = 'admin/config/regional/language'; + $form_state['redirect'] = 'admin/config/regional/language/configure'; drupal_set_message(t('Language negotiation configuration saved.')); } |