Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 14 |
LanguageBlock | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 14 |
getDerivativeDefinitions | |
0.00% |
0 / 1 |
20 | |
0.00% |
0 / 14 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\language\Plugin\Derivative\LanguageBlock. | |
*/ | |
namespace Drupal\language\Plugin\Derivative; | |
use Drupal\Component\Plugin\Derivative\DeriverBase; | |
use Drupal\language\ConfigurableLanguageManagerInterface; | |
/** | |
* Provides language switcher block plugin definitions for all languages. | |
*/ | |
class LanguageBlock extends DeriverBase { | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getDerivativeDefinitions($base_plugin_definition) { | |
$language_manager = \Drupal::languageManager(); | |
if ($language_manager instanceof ConfigurableLanguageManagerInterface) { | |
$info = $language_manager->getDefinedLanguageTypesInfo(); | |
$configurable_types = $language_manager->getLanguageTypes(); | |
foreach ($configurable_types as $type) { | |
$this->derivatives[$type] = $base_plugin_definition; | |
$this->derivatives[$type]['admin_label'] = t('Language switcher (@type)', array('@type' => $info[$type]['name'])); | |
} | |
// If there is just one configurable type then change the title of the | |
// block. | |
if (count($configurable_types) == 1) { | |
$this->derivatives[reset($configurable_types)]['admin_label'] = t('Language switcher'); | |
} | |
} | |
return parent::getDerivativeDefinitions($base_plugin_definition); | |
} | |
} |