LanguageNegotiator::saveConfiguration($type, $enabled_methods)
Saves a list of language negotiation methods for a language type.
Parameters
string $type: The language type.
int[] $enabled_methods: An array of language negotiation method weights keyed by method ID.
Overrides LanguageNegotiatorInterface::saveConfiguration
File
- core/modules/language/src/LanguageNegotiator.php, line 248
Class
- LanguageNegotiator
- Class responsible for performing language negotiation.
Namespace
Drupal\language
Code
function saveConfiguration($type, $enabled_methods) { // As configurable language types might have changed, we reset the cache. $this->languageManager->reset(); $definitions = $this->getNegotiationMethods(); $default_types = $this->languageManager->getLanguageTypes(); // Order the language negotiation method list by weight. asort($enabled_methods); foreach ($enabled_methods as $method_id => $weight) { if (isset($definitions[$method_id])) { $method = $definitions[$method_id]; // If the language negotiation method does not express any preference // about types, make it available for any configurable type. $types = array_flip(!empty($method['types']) ? $method['types'] : $default_types); // Check whether the method is defined and has the right type. if (!isset($types[$type])) { unset($enabled_methods[$method_id]); } } else { unset($enabled_methods[$method_id]); } } $this->configFactory->getEditable('language.types')->set('negotiation.' . $type . '.enabled', $enabled_methods)->save(); }
Please login to continue.