Version 1
[yaffs-website] / web / modules / contrib / blazy / src / Plugin / views / field / BlazyViewsFieldFile.php
1 <?php
2
3 namespace Drupal\blazy\Plugin\views\field;
4
5 use Drupal\views\ResultRow;
6
7 /**
8  * Defines a custom field that renders a preview of a file.
9  *
10  * @ViewsField("blazy_file")
11  */
12 class BlazyViewsFieldFile extends BlazyViewsFieldPluginBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public function render(ResultRow $values) {
18     /** @var \Drupal\file\Entity\File $entity */
19     $entity   = $values->_entity;
20     $settings = $this->mergedViewsSettings();
21
22     $settings['delta'] = $values->index;
23
24     $data = $this->getImageItem($entity);
25     $data['settings'] = isset($data['settings']) ? array_merge($settings, $data['settings']) : $settings;
26
27     return $this->buildPreview($data, $entity, $entity->getFilename());
28   }
29
30   /**
31    * Defines the scope for the form elements.
32    */
33   public function getScopedFormElements() {
34     return ['multimedia' => TRUE, 'view_mode' => 'default'] + parent::getScopedFormElements();
35   }
36
37 }