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
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.