class Image in Drupal 10
Same name in this branch
- 10 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
- 10 core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
- 10 core/modules/quickedit/src/Plugin/InPlaceEditor/Image.php \Drupal\quickedit\Plugin\InPlaceEditor\Image
- 10 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
Same name and namespace in other branches
- 8 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
- 9 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
Image entity media source.
Plugin annotation
@MediaSource(
id = "image",
label = @Translation("Image"),
description = @Translation("Use local images for reusable media."),
allowed_field_types = {"image"},
default_thumbnail_filename = "no-thumbnail.png",
thumbnail_alt_metadata_attribute = "thumbnail_alt_value"
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\media\MediaSourceBase implements ContainerFactoryPluginInterface, MediaSourceInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of Image
See also
\Drupal\Core\Image\ImageInterface
3 files declare their use of Image
- MediaLibraryDisplayModeTest.php in core/
modules/ media_library/ tests/ src/ Functional/ MediaLibraryDisplayModeTest.php - MediaSourceImageTest.php in core/
modules/ media/ tests/ src/ FunctionalJavascript/ MediaSourceImageTest.php - StandardTest.php in core/
profiles/ standard/ tests/ src/ Functional/ StandardTest.php
28 string references to 'Image'
- ckeditor5.ckeditor5.yml in core/
modules/ ckeditor5/ ckeditor5.ckeditor5.yml - core/modules/ckeditor5/ckeditor5.ckeditor5.yml
- ContentEntityTest::testMediaSource in core/
modules/ migrate_drupal/ tests/ src/ Kernel/ Plugin/ migrate/ source/ ContentEntityTest.php - Tests media source plugin.
- drupal6.php in core/
modules/ migrate_drupal/ tests/ fixtures/ drupal6.php - A database agnostic dump for testing purposes.
- DrupalImage::getButtons in core/
modules/ ckeditor/ src/ Plugin/ CKEditorPlugin/ DrupalImage.php - EditorImageDialog::buildForm in core/
modules/ editor/ src/ Form/ EditorImageDialog.php
File
- core/
modules/ media/ src/ Plugin/ media/ Source/ Image.php, line 30
Namespace
Drupal\media\Plugin\media\SourceView source
class Image extends File {
/**
* Key for "image width" metadata attribute.
*
* @var string
*/
const METADATA_ATTRIBUTE_WIDTH = 'width';
/**
* Key for "image height" metadata attribute.
*
* @var string
*/
const METADATA_ATTRIBUTE_HEIGHT = 'height';
/**
* The image factory service.
*
* @var \Drupal\Core\Image\ImageFactory
*/
protected $imageFactory;
/**
* The file system service.
*
* @var \Drupal\Core\File\FileSystemInterface
*/
protected $fileSystem;
/**
* Constructs a new class instance.
*
* @param array $configuration
* A configuration array containing information about the plugin instance.
* @param string $plugin_id
* The plugin_id for the plugin instance.
* @param mixed $plugin_definition
* The plugin implementation definition.
* @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
* Entity type manager service.
* @param \Drupal\Core\Entity\EntityFieldManagerInterface $entity_field_manager
* Entity field manager service.
* @param \Drupal\Core\Field\FieldTypePluginManagerInterface $field_type_manager
* The field type plugin manager service.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The config factory service.
* @param \Drupal\Core\Image\ImageFactory $image_factory
* The image factory.
* @param \Drupal\Core\File\FileSystemInterface $file_system
* The file system service.
*/
public function __construct(array $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, FieldTypePluginManagerInterface $field_type_manager, ConfigFactoryInterface $config_factory, ImageFactory $image_factory, FileSystemInterface $file_system) {
parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $entity_field_manager, $field_type_manager, $config_factory);
$this->imageFactory = $image_factory;
$this->fileSystem = $file_system;
}
/**
* {@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'), $container
->get('entity_field.manager'), $container
->get('plugin.manager.field.field_type'), $container
->get('config.factory'), $container
->get('image.factory'), $container
->get('file_system'));
}
/**
* {@inheritdoc}
*/
public function getMetadataAttributes() {
$attributes = parent::getMetadataAttributes();
$attributes += [
static::METADATA_ATTRIBUTE_WIDTH => $this
->t('Width'),
static::METADATA_ATTRIBUTE_HEIGHT => $this
->t('Height'),
];
return $attributes;
}
/**
* {@inheritdoc}
*/
public function getMetadata(MediaInterface $media, $name) {
// Get the file and image data.
/** @var \Drupal\file\FileInterface $file */
$file = $media
->get($this->configuration['source_field'])->entity;
// If the source field is not required, it may be empty.
if (!$file) {
return parent::getMetadata($media, $name);
}
$uri = $file
->getFileUri();
switch ($name) {
case static::METADATA_ATTRIBUTE_WIDTH:
$image = $this->imageFactory
->get($uri);
return $image
->getWidth() ?: NULL;
case static::METADATA_ATTRIBUTE_HEIGHT:
$image = $this->imageFactory
->get($uri);
return $image
->getHeight() ?: NULL;
case 'thumbnail_uri':
return $uri;
case 'thumbnail_alt_value':
return $media
->get($this->configuration['source_field'])->alt ?: parent::getMetadata($media, $name);
}
return parent::getMetadata($media, $name);
}
/**
* {@inheritdoc}
*/
public function createSourceField(MediaTypeInterface $type) {
/** @var \Drupal\field\FieldConfigInterface $field */
$field = parent::createSourceField($type);
// Reset the field to its default settings so that we don't inherit the
// settings from the parent class' source field.
$settings = $this->fieldTypeManager
->getDefaultFieldSettings($field
->getType());
return $field
->set('settings', $settings);
}
/**
* {@inheritdoc}
*/
public function prepareViewDisplay(MediaTypeInterface $type, EntityViewDisplayInterface $display) {
parent::prepareViewDisplay($type, $display);
// Use the `large` image style and do not link the image to anything.
// This will prevent the out-of-the-box configuration from outputting very
// large raw images. If the `large` image style has been deleted, do not
// set an image style.
$field_name = $this
->getSourceFieldDefinition($type)
->getName();
$component = $display
->getComponent($field_name);
$component['settings']['image_link'] = '';
$component['settings']['image_style'] = '';
if ($this->entityTypeManager
->getStorage('image_style')
->load('large')) {
$component['settings']['image_style'] = 'large';
}
$display
->setComponent($field_name, $component);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
protected | property | ||
DependencySerializationTrait:: |
public | function | 2 | |
DependencySerializationTrait:: |
public | function | 2 | |
File:: |
protected | function | Gets the thumbnail image URI based on a file entity. | |
File:: |
constant | Key for "MIME type" metadata attribute. | ||
File:: |
constant | Key for "Name" metadata attribute. | ||
File:: |
constant | Key for "File size" metadata attribute. | ||
Image:: |
protected | property | The file system service. | |
Image:: |
protected | property | The image factory service. | |
Image:: |
public static | function |
Creates an instance of the plugin. Overrides MediaSourceBase:: |
|
Image:: |
public | function |
Creates the source field definition for a type. Overrides File:: |
|
Image:: |
public | function |
Gets the value for a metadata attribute for a given media item. Overrides File:: |
|
Image:: |
public | function |
Gets a list of metadata attributes provided by this plugin. Overrides File:: |
|
Image:: |
constant | Key for "image height" metadata attribute. | ||
Image:: |
constant | Key for "image width" metadata attribute. | ||
Image:: |
public | function |
Prepares the media type fields for this source in the view display. Overrides MediaSourceBase:: |
|
Image:: |
public | function |
Constructs a new class instance. Overrides MediaSourceBase:: |
|
MediaSourceBase:: |
protected | property | The config factory service. | |
MediaSourceBase:: |
protected | property | The entity field manager service. | |
MediaSourceBase:: |
protected | property | The entity type manager service. | |
MediaSourceBase:: |
protected | property | The field type plugin manager service. | |
MediaSourceBase:: |
protected | property | Plugin label. | |
MediaSourceBase:: |
public | function | 2 | |
MediaSourceBase:: |
public | function | ||
MediaSourceBase:: |
protected | function | Creates the source field storage definition. | |
MediaSourceBase:: |
public | function | 2 | |
MediaSourceBase:: |
public | function | ||
MediaSourceBase:: |
public | function | ||
MediaSourceBase:: |
protected | function | Determine the name of the source field. | 2 |
MediaSourceBase:: |
protected | function | Get the source field options for the media type form. | |
MediaSourceBase:: |
protected | function | Returns the source field storage definition. | |
MediaSourceBase:: |
public | function | ||
MediaSourceBase:: |
public | function | 3 | |
MediaSourceBase:: |
public | function | ||
MediaSourceBase:: |
public | function | 1 | |
MediaSourceBase:: |
public | function | 1 | |
MediaSourceInterface:: |
constant | Default empty value for metadata fields. | ||
MessengerTrait:: |
protected | property | The messenger. | 18 |
MessengerTrait:: |
public | function | Gets the messenger. | 18 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | 2 | |
PluginBase:: |
public | function | ||
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 3 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 1 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |