locale_languages_configure_form_submit
- Versions
- 6 – 7
locale_languages_configure_form_submit($form, &$form_state)
Submit handler for language negotiation settings.
Related topics
Code
includes/locale.inc, line 662
<?php
function locale_languages_configure_form_submit($form, &$form_state) {
$language_types = array();
$configurable_types = $form['#language_types'];
foreach ($configurable_types as $type) {
$negotiation = array();
$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]) {
$provider = $form[$type]['#language_providers'][$id];
$provider['weight'] = $weight;
$negotiation[$id] = $provider;
}
}
language_negotiation_set($type, $negotiation);
variable_set("locale_language_providers_enabled_$type", $enabled_providers);
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 $id) {
if (isset($defined_providers[$id])) {
$negotiation[$id] = $defined_providers[$id];
}
}
language_negotiation_set($type, $negotiation);
}
}
// Save language types.
variable_set('language_types', $language_types);
$form_state['redirect'] = 'admin/config/regional/language';
drupal_set_message(t('Language negotiation configuration saved.'));
}
?>Login or register to post comments 