AllowedLanguagesTrustedCallbacks.php in Allowed Languages 2.x
File
src/Form/AllowedLanguagesTrustedCallbacks.php
View source
<?php
namespace Drupal\allowed_languages\Form;
use Drupal\Core\Security\TrustedCallbackInterface;
use Drupal\Core\Language\LanguageInterface;
class AllowedLanguagesTrustedCallbacks implements TrustedCallbackInterface {
public static function trustedCallbacks() {
return [
'languageSelectWidgetPreRender',
];
}
public static function languageSelectWidgetPreRender($build) {
$allowed_languages = \Drupal::service('allowed_languages.allowed_languages_manager')
->assignedLanguages();
foreach ($build['value']['#options'] as $language_code => $language_option) {
if (in_array($language_code, $allowed_languages)) {
continue;
}
if ($language_code === LanguageInterface::LANGCODE_NOT_SPECIFIED || $language_code === LanguageInterface::LANGCODE_NOT_APPLICABLE) {
continue;
}
unset($build['value']['#options'][$language_code]);
}
return $build;
}
}