Version 1
[yaffs-website] / web / modules / contrib / blazy / src / Plugin / views / field / BlazyViewsFieldMedia.php
diff --git a/web/modules/contrib/blazy/src/Plugin/views/field/BlazyViewsFieldMedia.php b/web/modules/contrib/blazy/src/Plugin/views/field/BlazyViewsFieldMedia.php
new file mode 100644 (file)
index 0000000..8f55d09
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+
+namespace Drupal\blazy\Plugin\views\field;
+
+use Drupal\views\ResultRow;
+
+/**
+ * Defines a custom field that renders a preview of a media.
+ *
+ * @ViewsField("blazy_media")
+ */
+class BlazyViewsFieldMedia extends BlazyViewsFieldPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function render(ResultRow $values) {
+    /** @var \Drupal\media_entity\Entity\Media $media */
+    $media = $values->_entity;
+
+    $data['settings'] = $this->mergedViewsSettings();
+    $data['settings']['delta'] = $values->index;
+
+    return $this->buildPreview($data, $media, $media->label());
+  }
+
+  /**
+   * Defines the scope for the form elements.
+   */
+  public function getScopedFormElements() {
+    return ['multimedia' => TRUE, 'view_mode' => 'default'] + parent::getScopedFormElements();
+  }
+
+}