public function AvatarKitEntityField::getAvatar in Avatar Kit 8.2
File
- src/
Plugin/ Avatars/ Service/ AvatarKitEntityField.php, line 32
Class
- AvatarKitEntityField
- Gets avatar from a field in the same entity.
Namespace
Drupal\avatars\Plugin\Avatars\ServiceCode
public function getAvatar(AvatarIdentifierInterface $identifier) : ?string {
if (!$identifier instanceof EntityAvatarIdentifierInterface) {
// Identifier must have an entity.
return NULL;
}
$entity = $identifier
->getEntity();
$field = $this->configuration['field'];
if ($field) {
[
$entity_type,
$bundle,
$fieldName,
] = explode('.', $field);
if ($entity_type == $entity
->getEntityTypeId() && $bundle == $entity
->bundle()) {
/** @var \Drupal\file\Plugin\Field\FieldType\FileFieldItemList $field_list */
$field_list = $entity->{$fieldName};
/** @var \Drupal\file\Plugin\Field\FieldType\FileItem $item */
$item = $field_list
->first();
/** @var \Drupal\file\FileInterface $file */
$file = $field_list->entity;
if ($file) {
$uri = $file
->getFileUri();
return $uri;
}
return NULL;
}
}
// Entity does not map to this plugin.
return NULL;
}