You are here

public function Media::uri in Crop API 8

Same name and namespace in other branches
  1. 8.2 src/Plugin/Crop/EntityProvider/Media.php \Drupal\crop\Plugin\Crop\EntityProvider\Media::uri()

Gets URI of the image file.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: Entity being cropping.

Return value

string|false URI as string or FALSE

Overrides EntityProviderBase::uri

File

src/Plugin/Crop/EntityProvider/Media.php, line 61

Class

Media
Media crop integration.

Namespace

Drupal\crop\Plugin\Crop\EntityProvider

Code

public function uri(EntityInterface $entity) {
  $bundle_entity_type = $entity
    ->getEntityType()
    ->getBundleEntityType();

  /** @var \Drupal\Core\Config\Entity\ConfigEntityBase $entity_type */
  $entity_type = $this->entityTypeManager
    ->getStorage($bundle_entity_type)
    ->load($entity
    ->bundle());
  $image_field = $entity_type
    ->getThirdPartySetting('crop', 'image_field');
  if ($entity->{$image_field}
    ->first()
    ->isEmpty()) {
    return FALSE;
  }

  /** @var \Drupal\file\FileInterface $image */
  $image = $this->entityTypeManager
    ->getStorage('file')
    ->load($entity->{$image_field}->target_id);
  if (strpos($image
    ->getMimeType(), 'image') !== 0) {
    return FALSE;
  }
  return $image
    ->getFileUri();
}