function language_types_set

Updates the language type configuration.

Related topics

2 calls to language_types_set()
locale_languages_configure_form_submit in modules/locale/locale.admin.inc
Submit handler for language negotiation settings.
locale_modules_enabled in modules/locale/locale.module
Implements hook_modules_enabled().

File

includes/language.inc, line 179

Code

function language_types_set() {
    // Ensure that we are getting the defined language negotiation information. An
    // invocation of module_enable() or module_disable() could outdate the cached
    // information.
    drupal_static_reset('language_types_info');
    drupal_static_reset('language_negotiation_info');
    // Determine which language types are configurable and which not by checking
    // whether the 'fixed' key is defined. Non-configurable (fixed) language types
    // have their language negotiation settings stored there.
    $defined_providers = language_negotiation_info();
    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] = $weight;
                }
            }
            language_negotiation_set($type, $negotiation);
        }
        else {
            $language_types[$type] = TRUE;
        }
    }
    // Save language types.
    variable_set('language_types', $language_types);
    // Ensure that subsequent calls of language_types_configurable() return the
    // updated language type information.
    drupal_static_reset('language_types_configurable');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.