public function TextFieldEmbedBase::getTargetEntities in Group Media 8.2
1 call to TextFieldEmbedBase::getTargetEntities()
- TextFieldEmbedBase::process in src/
Plugin/ MediaFinder/ TextFieldEmbedBase.php - Search for the attached media entities.
File
- src/
Plugin/ MediaFinder/ TextFieldEmbedBase.php, line 50
Class
- TextFieldEmbedBase
- Class TextFieldEmbedBase.
Namespace
Drupal\groupmedia\Plugin\MediaFinderCode
public function getTargetEntities(FieldItemInterface $item) {
$item_value = $item
->getValue();
if (empty($item_value['value'])) {
return [];
}
$text = $item_value['value'];
if ($item
->getFieldDefinition()
->getType() === 'text_with_summary') {
$text .= $item_value['summary'];
}
$entities_in_text = $this
->parseEntitiesFromText($text);
$valid_entities = [];
foreach ($entities_in_text as $uuid) {
// Check if the target entity exists since text fields are not
// automatically updated when an entity is removed.
/** @var \Drupal\media\MediaInterface $target_entity */
if ($target_entity = $this->entityRepository
->loadEntityByUuid('media', $uuid)) {
if ($target_entity && $this
->shouldBeAdded($target_entity, $item
->getEntity(), $item
->getFieldDefinition()
->getName())) {
$valid_entities[$target_entity
->id()] = $target_entity;
}
}
}
return $valid_entities;
}