You are here

class oEmbedThumbnail in oEmbed 8

Class oEmbedThumbnail @package Drupal\oembed\Render\Element

Plugin annotation

@RenderElement("oembed_thumbnail");

Hierarchy

Expanded class hierarchy of oEmbedThumbnail

File

src/Element/oEmbedThumbnail.php, line 11

Namespace

Drupal\oembed\Element
View source
class oEmbedThumbnail extends oEmbed {
  public function getInfo() {
    $class = get_class($this);
    return array(
      '#theme' => 'image',
      '#path' => NULL,
      '#width' => NULL,
      '#height' => NULL,
      '#alt' => '',
      '#title' => NULL,
      '#attributes' => array(),
      '#embed' => NULL,
      '#parameters' => array(),
      '#pre_render' => array(
        array(
          $class,
          'preRenderFetch',
        ),
        array(
          $class,
          'preRenderThumbnail',
        ),
      ),
    );
  }
  public static function preRenderThumbnail($element) {

    // Only act when the oEmbed response is true.
    if (!empty($element['#printed'])) {
      return $element;
    }

    /** @var \Bangpound\oEmbed\Response\Response $embed */
    $embed = $element['#embed'];

    // Check if the oEmbed response provides a thumbnail image.
    if (empty($embed
      ->getThumbnailUrl())) {
      $element['#printed'] = TRUE;
      return $element;
    }
    self::oembed_pre_render_image_helper($element);
    return $element;
  }
  private static function oembed_pre_render_image_helper(&$element) {

    /** @var \Bangpound\oEmbed\Response\Response $embed */
    $embed = $element['#embed'];
    $element['#uri'] = $embed
      ->getThumbnailUrl();
    $element['#alt'] = oembed_alt_attr($embed);
    $element['#title'] = $embed
      ->getTitle();
    $element['#height'] = !empty($embed
      ->getThumbnailHeight()) ? $embed
      ->getThumbnailHeight() : NULL;
    $element['#width'] = !empty($embed
      ->getThumbnailWidth()) ? $embed
      ->getThumbnailWidth() : NULL;

    // theme_image() prefers width, height, alt and title element properties over
    // attributes so we manually override them if an associated attribute is set.
    foreach (array(
      'width',
      'height',
      'alt',
      'title',
    ) as $key) {
      if (isset($element['#attributes'][$key])) {
        $element['#' . $key] = $element['#attributes'][$key];
      }
    }
  }

}

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
MessengerTrait::$messenger protected property The messenger. 29
MessengerTrait::messenger public function Gets the messenger. 29
MessengerTrait::setMessenger public function Sets the messenger.
oEmbed::$consumer protected property
oEmbed::create public static function Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface::create
oEmbed::preRenderFetch public static function
oEmbed::preRenderRetheme public static function
oEmbed::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase::__construct
oEmbedThumbnail::getInfo public function Returns the element properties for this element. Overrides oEmbed::getInfo
oEmbedThumbnail::oembed_pre_render_image_helper private static function
oEmbedThumbnail::preRenderThumbnail public static function
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.
RenderElement::preRenderAjaxForm public static function Adds Ajax information about an element to communicate with JavaScript.
RenderElement::preRenderGroup public static function Adds members of this group as actual elements for rendering.
RenderElement::processAjaxForm public static function Form element processing handler for the #ajax form property. 1
RenderElement::processGroup public static function Arranges elements into groups.
RenderElement::setAttributes public static function Sets a form element's class attribute. Overrides ElementInterface::setAttributes
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.