io-8.x-1.x-dev/modules/io_browser/src/Plugin/EntityBrowser/FieldWidgetDisplay/IoBrowserFieldWidgetDisplayRenderedEntity.php

modules/io_browser/src/Plugin/EntityBrowser/FieldWidgetDisplay/IoBrowserFieldWidgetDisplayRenderedEntity.php
<?php

namespace Drupal\io_browser\Plugin\EntityBrowser\FieldWidgetDisplay;

use Drupal\Core\Entity\EntityInterface;
use Drupal\io_browser\IoBrowserDefault;

/**
 * Displays IO Browser as a rendered entity.
 *
 * @EntityBrowserFieldWidgetDisplay(
 *   id = "io_browser_rendered_entity",
 *   label = @Translation("IO Browser: Rendered entity"),
 *   description = @Translation("Displays a rendered entity.")
 * )
 */
class IoBrowserFieldWidgetDisplayRenderedEntity extends IoBrowserFieldWidgetDisplayBase {

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return IoBrowserDefault::widgetEntitySettings() + parent::defaultConfiguration();
  }

  /**
   * {@inheritdoc}
   */
  public function view(EntityInterface $entity) {
    // @todo remove post blazy:2.17.
    if ($denied = $this->denied($entity)) {
      return $denied;
    }

    $settings = $this->buildSettings();
    $settings['view_mode'] = $this->configuration['view_mode'] ?? 'io_browser';
    $id = $entity->id();

    // @fixme figure out to get deltas like views row index.
    $this->delta++;
    $delta[$id] = $this->delta;

    $data = [
      '#entity'   => $entity,
      '#delta'    => $delta[$id],
      '#settings' => $settings,
      'fallback'  => $entity->label(),
    ];

    $content = $this->blazyEntity->view($data);
    $content['#entity'] = $entity;
    return $content;
  }

  /**
   * {@inheritdoc}
   */
  public function calculateDependencies() {
    $dependencies = parent::calculateDependencies();
    if ($view_mode = $this->formatter->load($this->configuration['entity_type'] . '.' . $this->configuration['view_mode'], 'entity_view_mode')) {
      $dependencies[$view_mode->getConfigDependencyKey()][] = $view_mode->getConfigDependencyName();
    }
    return $dependencies;
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc