You are here

class SVG in SVG Image Field 2.0.x

Same name and namespace in other branches
  1. 8 src/Plugin/media/Source/SVG.php \Drupal\svg_image_field\Plugin\media\Source\SVG
  2. 2.1.x src/Plugin/media/Source/SVG.php \Drupal\svg_image_field\Plugin\media\Source\SVG

Provides media type plugin for SVG image field.

Plugin annotation


@MediaSource(
  id = "svg",
  label = @Translation("SVG"),
  description = @Translation("Provides business logic and metadata for SVG files."),
  allowed_field_types = {"svg_image_field"},
  default_thumbnail_filename = "generic.png",
  thumbnail_alt_metadata_attribute = "thumbnail_alt_value"
)

Hierarchy

Expanded class hierarchy of SVG

1 string reference to 'SVG'
field.field.media.vector_image.field_media_svg.yml in modules/svg_image_field_media_bundle/config/install/field.field.media.vector_image.field_media_svg.yml
modules/svg_image_field_media_bundle/config/install/field.field.media.vector_image.field_media_svg.yml

File

src/Plugin/media/Source/SVG.php, line 21

Namespace

Drupal\svg_image_field\Plugin\media\Source
View source
class SVG extends File {

  /**
   * {@inheritdoc}
   */
  public function createSourceField(MediaTypeInterface $type) {
    return parent::createSourceField($type)
      ->set('settings', [
      'file_extensions' => 'svg',
    ]);
  }

  /**
   * {@inheritdoc}
   */
  public function getMetadata(MediaInterface $media, $name) {

    /** @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);
    }

    // Use the SVG file as the thumbnail. This may cause no thumbnail to be
    // output depending on your image processor and image style output for
    // the thumbnail.
    // See https://drupal.org/i/3105482 for more info.
    if ($name === 'thumbnail_uri') {
      return $file
        ->getFileUri();
    }
    if ($name === 'thumbnail_alt_value') {
      return $media
        ->get($this->configuration['source_field'])->alt ?: parent::getMetadata($media, $name);
    }
    return parent::getMetadata($media, $name);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property
DependencySerializationTrait::$_serviceIds protected property
DependencySerializationTrait::__sleep public function 2
DependencySerializationTrait::__wakeup public function 2
File::getMetadataAttributes public function Gets a list of metadata attributes provided by this plugin. Overrides MediaSourceInterface::getMetadataAttributes 1
File::getThumbnail protected function Gets the thumbnail image URI based on a file entity.
File::METADATA_ATTRIBUTE_MIME constant Key for "MIME type" metadata attribute.
File::METADATA_ATTRIBUTE_NAME constant Key for "Name" metadata attribute.
File::METADATA_ATTRIBUTE_SIZE constant Key for "File size" metadata attribute.
MediaSourceBase::$configFactory protected property The config factory service.
MediaSourceBase::$entityFieldManager protected property The entity field manager service.
MediaSourceBase::$entityTypeManager protected property The entity type manager service.
MediaSourceBase::$fieldTypeManager protected property The field type plugin manager service.
MediaSourceBase::$label protected property Plugin label.
MediaSourceBase::buildConfigurationForm public function Form constructor. Overrides PluginFormInterface::buildConfigurationForm 2
MediaSourceBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides DependentPluginInterface::calculateDependencies
MediaSourceBase::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create 2
MediaSourceBase::createSourceFieldStorage protected function Creates the source field storage definition.
MediaSourceBase::defaultConfiguration public function Gets default configuration for this plugin. Overrides ConfigurableInterface::defaultConfiguration 2
MediaSourceBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
MediaSourceBase::getSourceFieldDefinition public function Get the source field definition for a media type. Overrides MediaSourceInterface::getSourceFieldDefinition
MediaSourceBase::getSourceFieldName protected function Determine the name of the source field. 2
MediaSourceBase::getSourceFieldOptions protected function Get the source field options for the media type form.
MediaSourceBase::getSourceFieldStorage protected function Returns the source field storage definition.
MediaSourceBase::getSourceFieldValue public function Get the primary value stored in the source field. Overrides MediaSourceInterface::getSourceFieldValue
MediaSourceBase::prepareFormDisplay public function Prepares the media type fields for this source in the form display. Overrides MediaSourceInterface::prepareFormDisplay 3
MediaSourceBase::prepareViewDisplay public function Prepares the media type fields for this source in the view display. Overrides MediaSourceInterface::prepareViewDisplay 6
MediaSourceBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
MediaSourceBase::submitConfigurationForm public function Form submission handler. Overrides PluginFormInterface::submitConfigurationForm 1
MediaSourceBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm 1
MediaSourceBase::__construct public function Constructs a new class instance. Overrides PluginBase::__construct 2
MediaSourceInterface::METADATA_FIELD_EMPTY constant Default empty value for metadata fields.
MessengerTrait::$messenger protected property The messenger. 27
MessengerTrait::messenger public function Gets the messenger. 27
MessengerTrait::setMessenger public function Sets the messenger.
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 2
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
StringTranslationTrait::$stringTranslation protected property The string translation service. 4
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
SVG::createSourceField public function Creates the source field definition for a type. Overrides File::createSourceField
SVG::getMetadata public function Gets the value for a metadata attribute for a given media item. Overrides File::getMetadata