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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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.