X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fcrop%2Fsrc%2FPlugin%2FCrop%2FEntityProvider%2FMedia.php;fp=web%2Fmodules%2Fcontrib%2Fcrop%2Fsrc%2FPlugin%2FCrop%2FEntityProvider%2FMedia.php;h=0e8c1182fc4fcb154a3034940101fcfd36ada435;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/modules/contrib/crop/src/Plugin/Crop/EntityProvider/Media.php b/web/modules/contrib/crop/src/Plugin/Crop/EntityProvider/Media.php new file mode 100644 index 000000000..0e8c1182f --- /dev/null +++ b/web/modules/contrib/crop/src/Plugin/Crop/EntityProvider/Media.php @@ -0,0 +1,83 @@ +entityTypeManager = $entity_type_manager; + } + + /** + * {@inheritdoc} + */ + public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { + return new static( + $configuration, + $plugin_id, + $plugin_definition, + $container->get('entity_type.manager') + ); + } + + /** + * {@inheritdoc} + */ + 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(); + } + +}