class DisplayModeIdDeriver in GraphQL 8.3
Hierarchy
- class \Drupal\Component\Plugin\Derivative\DeriverBase implements DeriverInterface
- class \Drupal\graphql_core\Plugin\Deriver\Enums\DisplayModeIdDeriver implements ContainerDeriverInterface uses StringTranslationTrait
Expanded class hierarchy of DisplayModeIdDeriver
File
- modules/
graphql_core/ src/ Plugin/ Deriver/ Enums/ DisplayModeIdDeriver.php, line 13
Namespace
Drupal\graphql_core\Plugin\Deriver\EnumsView source
class DisplayModeIdDeriver extends DeriverBase implements ContainerDeriverInterface {
use StringTranslationTrait;
/**
* Entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, $basePluginId) {
return new static($container
->get('entity_type.manager'));
}
/**
* DisplayModeIdDeriver constructor.
*
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
* The entity type manager service.
*/
public function __construct(EntityTypeManagerInterface $entityTypeManager) {
$this->entityTypeManager = $entityTypeManager;
}
/**
* {@inheritdoc}
*/
public function getDerivativeDefinitions($basePluginDefinition) {
foreach ($this
->getDisplayModes() as $targetType => $displayModes) {
$this->derivatives[$targetType] = [
'name' => StringHelper::camelCase($targetType, 'display', 'mode', 'id'),
'description' => $this
->t("The available display modes for '@type' entities.", [
'@type' => $this->entityTypeManager
->getDefinition($targetType)
->getLabel(),
]),
'values' => $displayModes,
] + $basePluginDefinition;
}
return parent::getDerivativeDefinitions($basePluginDefinition);
}
/**
* Retrieves a list of entity view modes grouped by their target type.
*
* @return array
* The list of entity view modes grouped by the target entity type.
*/
protected function getDisplayModes() {
$storage = $this->entityTypeManager
->getStorage('entity_view_mode');
return array_reduce($storage
->loadMultiple(), function ($carry, EntityViewModeInterface $current) {
$target = $current
->getTargetType();
list(, $id) = explode('.', $current
->id());
$carry[$target][StringHelper::upperCase($id)] = [
'value' => $id,
'description' => $this
->t("The '@label' display mode for '@type' entities.", [
'@label' => $current
->label(),
'@type' => $this->entityTypeManager
->getDefinition($target)
->getLabel(),
]),
];
return $carry;
}, []);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DeriverBase:: |
protected | property | List of derivative definitions. | 1 |
DeriverBase:: |
public | function |
Gets the definition of a derivative plugin. Overrides DeriverInterface:: |
|
DisplayModeIdDeriver:: |
protected | property | Entity type manager. | |
DisplayModeIdDeriver:: |
public static | function |
Creates a new class instance. Overrides ContainerDeriverInterface:: |
|
DisplayModeIdDeriver:: |
public | function |
Gets the definition of all derivatives of a base plugin. Overrides DeriverBase:: |
|
DisplayModeIdDeriver:: |
protected | function | Retrieves a list of entity view modes grouped by their target type. | |
DisplayModeIdDeriver:: |
public | function | DisplayModeIdDeriver constructor. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |