You are here

public function EmbedCode::getEmbedDescription in Varbase Media 9.0.x

Same name and namespace in other branches
  1. 8.7 modules/entity_browser_generic_embed/src/Plugin/EntityBrowser/Widget/EmbedCode.php \Drupal\entity_browser_generic_embed\Plugin\EntityBrowser\Widget\EmbedCode::getEmbedDescription()
  2. 8.6 modules/entity_browser_generic_embed/src/Plugin/EntityBrowser/Widget/EmbedCode.php \Drupal\entity_browser_generic_embed\Plugin\EntityBrowser\Widget\EmbedCode::getEmbedDescription()

Get Embed Description.

Parameters

\Drupal\Core\Form\FormStateInterface $form_state: The Status of the form.

Return value

string Description Markup.

1 call to EmbedCode::getEmbedDescription()
EmbedCode::getForm in modules/entity_browser_generic_embed/src/Plugin/EntityBrowser/Widget/EmbedCode.php

File

modules/entity_browser_generic_embed/src/Plugin/EntityBrowser/Widget/EmbedCode.php, line 66

Class

EmbedCode
An Entity Browser widget for creating media entities from embed codes.

Namespace

Drupal\entity_browser_generic_embed\Plugin\EntityBrowser\Widget

Code

public function getEmbedDescription(FormStateInterface $form_state) {

  // Embed Description.
  $embedDescription = "<h5>" . $this
    ->t("You can embed any of the following media by pasting a single complete URL:") . "</h5>";
  $embedDescription .= "<ul>";

  // Get list of media types.
  $mediaTypes = $this->entityTypeManager
    ->getStorage('media_type')
    ->loadMultiple();

  // List of media files Sources, which we do not want to show at embed.
  $mediaFileSources = [
    'Drupal\\media\\Plugin\\media\\Source\\File',
    'Drupal\\media\\Plugin\\media\\Source\\Image',
    'Drupal\\media\\Plugin\\media\\Source\\AudioFile',
    'Drupal\\media\\Plugin\\media\\Source\\VideoFile',
  ];

  // Get list of allowed media type bundles.
  $allowedBundles = $this
    ->getAllowedBundles($form_state);

  // If the target have  a list of allowd bundles.
  if (isset($allowedBundles) && is_array($allowedBundles) && count($allowedBundles) > 0) {
    foreach ($mediaTypes as $mediaType) {
      $mediaTypeSource = get_class($mediaType
        ->getSource());
      if (isset($mediaTypeSource) && !in_array($mediaTypeSource, $mediaFileSources)) {
        if (in_array($mediaType
          ->id(), $allowedBundles)) {
          $embedDescription .= "<li>";
          $embedDescription .= $mediaType
            ->label();
          $source_configuration = $mediaType
            ->getPluginCollections();
          if (isset($source_configuration['source_configuration'])) {
            $configuration = $source_configuration['source_configuration']
              ->getConfiguration();
            if (isset($configuration['providers']) && is_array($configuration['providers']) && count($configuration['providers']) > 0) {
              $embedDescription .= " (" . implode(', ', $configuration['providers']) . ")";
            }
          }
          $embedDescription .= "</li>";
        }
      }
    }
  }
  else {
    foreach ($mediaTypes as $mediaType) {
      $mediaTypeSource = get_class($mediaType
        ->getSource());
      if (isset($mediaTypeSource) && !in_array($mediaTypeSource, $mediaFileSources)) {
        $embedDescription .= "<li>";
        $embedDescription .= $mediaType
          ->label();
        $source_configuration = $mediaType
          ->getPluginCollections();
        if (isset($source_configuration['source_configuration'])) {
          $configuration = $source_configuration['source_configuration']
            ->getConfiguration();
          if (isset($configuration['providers']) && is_array($configuration['providers']) && count($configuration['providers']) > 0) {
            $embedDescription .= " (" . implode(', ', $configuration['providers']) . ")";
          }
        }
        $embedDescription .= "</li>";
      }
    }
  }
  $embedDescription .= "</ul>";
  return FieldFilteredMarkup::create($embedDescription);
}