You are here

public function AttachMediaToGroup::getMediaFromEntity in Group Media 8.2

Gets media items from give entity.

Media items are collected with media finder plugins.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: Entity object to search media items in.

Return value

\Drupal\media\MediaInterface[]|array List of media items found for given entity.

1 call to AttachMediaToGroup::getMediaFromEntity()
AttachMediaToGroup::attach in src/AttachMediaToGroup.php
Attach media items from given entity to the same group(s).

File

src/AttachMediaToGroup.php, line 204

Class

AttachMediaToGroup
Class AttachMediaToGroup.

Namespace

Drupal\groupmedia

Code

public function getMediaFromEntity(EntityInterface $entity) {
  $items = [];
  foreach ($this->mediaFinder
    ->getDefinitions() as $plugin_id => $definition) {

    /** @var \Drupal\groupmedia\MediaFinderInterface $pluginInstance */
    $pluginInstance = $this->mediaFinder
      ->createInstance($plugin_id);
    if ($pluginInstance && $pluginInstance
      ->applies($entity)) {
      $found_items = $pluginInstance
        ->process($entity);
      $items = array_merge($items, $found_items);
      if ($entity instanceof GroupContentInterface) {
        $childEntity = $entity
          ->getEntity();
        $found_items = $pluginInstance
          ->process($childEntity);
        $items = array_merge($items, $found_items);
      }
    }
  }
  return $items;
}