public function LanguageNegotiationSession::persist in Drupal 8
Same name and namespace in other branches
- 9 core/modules/language/src/Plugin/LanguageNegotiation/LanguageNegotiationSession.php \Drupal\language\Plugin\LanguageNegotiation\LanguageNegotiationSession::persist()
Notifies the plugin that the language code it returned has been accepted.
Parameters
\Drupal\Core\Language\LanguageInterface $language: The accepted language.
Overrides LanguageNegotiationMethodBase::persist
File
- core/
modules/ language/ src/ Plugin/ LanguageNegotiation/ LanguageNegotiationSession.php, line 68
Class
- LanguageNegotiationSession
- Identify language from a request/session parameter.
Namespace
Drupal\language\Plugin\LanguageNegotiationCode
public function persist(LanguageInterface $language) {
// We need to update the session parameter with the request value only if we
// have an authenticated user.
$langcode = $language
->getId();
if ($langcode && $this->languageManager) {
$languages = $this->languageManager
->getLanguages();
if ($this->currentUser
->isAuthenticated() && isset($languages[$langcode])) {
$config = $this->config
->get('language.negotiation')
->get('session');
$_SESSION[$config['parameter']] = $langcode;
}
}
}