function language_negotiation_purge

Removes any unused language negotiation providers from the configuration.

Related topics

1 call to language_negotiation_purge()
locale_modules_enabled in modules/locale/locale.module
Implements hook_modules_enabled().

File

includes/language.inc, line 318

Code

function language_negotiation_purge() {
    // 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_negotiation_info');
    drupal_static_reset('language_types_info');
    $defined_providers = language_negotiation_info();
    foreach (language_types_info() as $type => $type_info) {
        $weight = 0;
        $negotiation = array();
        foreach (variable_get("language_negotiation_{$type}", array()) as $id => $provider) {
            if (isset($defined_providers[$id])) {
                $negotiation[$id] = $weight++;
            }
        }
        language_negotiation_set($type, $negotiation);
    }
}

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