You are here

class MediaImage in Lightning Media 8.3

Same name and namespace in other branches
  1. 8.4 src/Plugin/entity_embed/EntityEmbedDisplay/MediaImage.php \Drupal\lightning_media\Plugin\entity_embed\EntityEmbedDisplay\MediaImage
  2. 8 src/Plugin/entity_embed/EntityEmbedDisplay/MediaImage.php \Drupal\lightning_media\Plugin\entity_embed\EntityEmbedDisplay\MediaImage
  3. 8.2 src/Plugin/entity_embed/EntityEmbedDisplay/MediaImage.php \Drupal\lightning_media\Plugin\entity_embed\EntityEmbedDisplay\MediaImage

Renders a media item's image via the image formatter.

If the embedded media item has an image field as its source field, that image is rendered through the image formatter. Otherwise, the media item's thumbnail is used.

Plugin annotation


@EntityEmbedDisplay(
  id = "media_image",
  label = @Translation("Media Image"),
  entity_types = {"media"},
  field_type = "image",
  provider = "image"
)

Hierarchy

Expanded class hierarchy of MediaImage

File

src/Plugin/entity_embed/EntityEmbedDisplay/MediaImage.php, line 26

Namespace

Drupal\lightning_media\Plugin\entity_embed\EntityEmbedDisplay
View source
class MediaImage extends ImageFieldFormatter {

  /**
   * {@inheritdoc}
   */
  public function getFieldFormatterId() {
    return 'image';
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
    $form = parent::buildConfigurationForm($form, $form_state);

    // Don't allow linking directly to the content.
    unset($form['image_link']['#options']['content']);
    return $form;
  }

  /**
   * {@inheritdoc}
   */
  public function getAttributeValues() {
    $field = $this
      ->getItem();
    $label = $field
      ->getEntity()
      ->label();

    // Try to default to the alt and title attributes set on the field item, but
    // fall back to the entity label for both.
    return parent::getAttributeValues() + [
      'alt' => $field->alt ?: $label,
      'title' => $field->title ?: $label,
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected function isValidImage() {

    // This display plugin works for any media entity. And media items always
    // have at least a thumbnail. So, we can bypass this access gate.
    return AccessResult::allowed();
  }

  /**
   * {@inheritdoc}
   */
  public function getFieldDefinition() {

    // The parent method will set the target_type to the entity type being
    // embedded, but we are actually rendering an image (i.e., a file entity).
    return parent::getFieldDefinition()
      ->setSetting('target_type', 'file');
  }

  /**
   * {@inheritdoc}
   */
  public function getFieldValue() {
    $value = parent::getFieldValue();
    $value['target_id'] = $this
      ->getItem()->target_id;
    return $value;
  }

  /**
   * Returns the image field item to use for the embedded entity.
   *
   * @return \Drupal\image\Plugin\Field\FieldType\ImageItem
   *   The image field item.
   */
  protected function getItem() {

    /** @var \Drupal\media\MediaInterface $entity */
    $entity = $this
      ->getEntityFromContext();
    $item = MediaHelper::getSourceField($entity)
      ->first();
    return $item instanceof ImageItem ? $item : $entity
      ->get('thumbnail')
      ->first();
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
DependencyTrait::$dependencies protected property The object's dependencies.
DependencyTrait::addDependencies protected function Adds multiple dependencies.
DependencyTrait::addDependency protected function Adds a dependency.
EntityEmbedDisplayBase::$attributes public property The attributes on the embedded entity.
EntityEmbedDisplayBase::$context public property The context for the plugin.
EntityEmbedDisplayBase::$entityTypeManager protected property The entity type manager service.
EntityEmbedDisplayBase::$languageManager protected property The language manager.
EntityEmbedDisplayBase::getAttributeValue public function Gets the value for an attribute.
EntityEmbedDisplayBase::getConfiguration public function Gets this plugin's configuration. Overrides ConfigurableInterface::getConfiguration
EntityEmbedDisplayBase::getConfigurationValue public function Gets a configuration value.
EntityEmbedDisplayBase::getContextValue public function Gets the value for a defined context.
EntityEmbedDisplayBase::getContextValues public function Gets the values for all defined contexts.
EntityEmbedDisplayBase::getEntityFromContext public function Gets the entity from the current context.
EntityEmbedDisplayBase::getEntityTypeFromContext public function Gets the entity type from the current context.
EntityEmbedDisplayBase::getLangcode public function Gets the current language code.
EntityEmbedDisplayBase::hasAttribute public function Checks if an attribute is set.
EntityEmbedDisplayBase::hasContextValue public function Returns whether or not value is set for a defined context.
EntityEmbedDisplayBase::isValidEntityType protected function Validates that this display plugin applies to the current entity type.
EntityEmbedDisplayBase::setAttributes public function Sets the values for all attributes.
EntityEmbedDisplayBase::setConfiguration public function Sets the configuration for this plugin instance. Overrides ConfigurableInterface::setConfiguration
EntityEmbedDisplayBase::setContextValue public function Sets the value for a defined context.
EntityEmbedDisplayBase::validateConfigurationForm public function Form validation handler. Overrides PluginFormInterface::validateConfigurationForm
EntityReferenceFieldFormatter::$configFactory protected property The configuration factory.
EntityReferenceFieldFormatter::build public function Builds the renderable array for this Entity Embed display plugin. Overrides FieldFormatterEntityEmbedDisplayBase::build
EntityReferenceFieldFormatter::disableContextualLinks public static function Disables Contextual Links for the embedded media by removing its property.
EntityReferenceFieldFormatter::disableQuickEdit public static function Disables Quick Edit for the embedded media by removing its attributes.
EntityReferenceFieldFormatter::isApplicableFieldFormatter protected function Checks if the field formatter is applicable. Overrides FieldFormatterEntityEmbedDisplayBase::isApplicableFieldFormatter
EntityReferenceFieldFormatter::trustedCallbacks public static function Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface::trustedCallbacks
FieldFormatterEntityEmbedDisplayBase::$fieldDefinition protected property The field definition.
FieldFormatterEntityEmbedDisplayBase::$fieldFormatter protected property The field formatter.
FieldFormatterEntityEmbedDisplayBase::$formatterPluginManager protected property The field formatter plugin manager.
FieldFormatterEntityEmbedDisplayBase::$typedDataManager protected property The typed data manager.
FieldFormatterEntityEmbedDisplayBase::calculateDependencies public function Calculates dependencies for the configured plugin. Overrides EntityEmbedDisplayBase::calculateDependencies 1
FieldFormatterEntityEmbedDisplayBase::createFieldDefinition protected function Creates a new faux-field definition.
FieldFormatterEntityEmbedDisplayBase::getFieldFormatter public function Constructs a field formatter. 1
FileFieldFormatter::defaultConfiguration public function Gets default configuration for this plugin. Overrides FieldFormatterEntityEmbedDisplayBase::defaultConfiguration
ImageFieldFormatter::$imageFactory protected property The image factory.
ImageFieldFormatter::$messenger protected property The messenger. Overrides MessengerTrait::$messenger
ImageFieldFormatter::access public function Indicates whether this Entity Embed display can be used. Overrides FieldFormatterEntityEmbedDisplayBase::access
ImageFieldFormatter::create public static function Creates an instance of the plugin. Overrides EntityReferenceFieldFormatter::create
ImageFieldFormatter::submitConfigurationForm public function Form submission handler. Overrides EntityEmbedDisplayBase::submitConfigurationForm
ImageFieldFormatter::__construct public function Constructs an ImageFieldFormatter object. Overrides EntityReferenceFieldFormatter::__construct
MediaImage::buildConfigurationForm public function Form constructor. Overrides ImageFieldFormatter::buildConfigurationForm
MediaImage::getAttributeValues public function Gets the values for all attributes. Overrides EntityEmbedDisplayBase::getAttributeValues
MediaImage::getFieldDefinition public function Get the FieldDefinition object required to render this field's formatter. Overrides EntityReferenceFieldFormatter::getFieldDefinition
MediaImage::getFieldFormatterId public function Returns the field formatter id. Overrides FieldFormatterEntityEmbedDisplayBase::getFieldFormatterId
MediaImage::getFieldValue public function Get the field value required to pass into the field formatter. Overrides ImageFieldFormatter::getFieldValue
MediaImage::getItem protected function Returns the image field item to use for the embedded entity.
MediaImage::isValidImage protected function Checks if the image is valid. Overrides ImageFieldFormatter::isValidImage
MessengerTrait::messenger public function Gets the messenger. 29
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 3
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.
PluginDependencyTrait::calculatePluginDependencies protected function Calculates and adds dependencies of a specific plugin instance. 1
PluginDependencyTrait::getPluginDependencies protected function Calculates and returns dependencies of a specific plugin instance.
PluginDependencyTrait::moduleHandler protected function Wraps the module handler. 1
PluginDependencyTrait::themeHandler protected function Wraps the theme handler. 1
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
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.
TrustedCallbackInterface::THROW_EXCEPTION constant Untrusted callbacks throw exceptions.
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION constant Untrusted callbacks trigger silenced E_USER_DEPRECATION errors.
TrustedCallbackInterface::TRIGGER_WARNING constant Untrusted callbacks trigger E_USER_WARNING errors.