Added Entity and Entity Reference Revisions which got dropped somewhere along the...
[yaffs-website] / web / modules / contrib / entity_reference_revisions / src / Plugin / views / row / EntityReferenceRevisions.php
diff --git a/web/modules/contrib/entity_reference_revisions/src/Plugin/views/row/EntityReferenceRevisions.php b/web/modules/contrib/entity_reference_revisions/src/Plugin/views/row/EntityReferenceRevisions.php
new file mode 100644 (file)
index 0000000..fe25de2
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+
+namespace Drupal\entity_reference_revisions\Plugin\views\row;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\views\Plugin\views\row\Fields;
+
+/**
+ * EntityReferenceRevisions row plugin.
+ *
+ * @ingroup views_row_plugins
+ *
+ * @ViewsRow(
+ *   id = "entity_reference_revisions",
+ *   title = @Translation("Entity Reference inline fields"),
+ *   help = @Translation("Displays the fields with an optional template."),
+ *   theme = "views_view_fields",
+ *   register_theme = FALSE,
+ *   display_types = {"entity_reference"}
+ * )
+ */
+class EntityReferenceRevisions extends Fields {
+
+  /**
+   * Overrides \Drupal\views\Plugin\views\row\Fields::defineOptions().
+   */
+  protected function defineOptions() {
+    $options = parent::defineOptions();
+    $options['separator'] = array('default' => '-');
+
+    return $options;
+  }
+
+  /**
+   * Overrides \Drupal\views\Plugin\views\row\Fields::buildOptionsForm().
+   */
+  public function buildOptionsForm(&$form, FormStateInterface $form_state) {
+    parent::buildOptionsForm($form, $form_state);
+
+    // Expand the description of the 'Inline field' checkboxes.
+    $form['inline']['#description'] .= '<br />' . $this->t("<strong>Note:</strong> In 'Entity Reference' displays, all fields will be displayed inline unless an explicit selection of inline fields is made here." );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function preRender($row) {
+    // Force all fields to be inline by default.
+    if (empty($this->options['inline'])) {
+      $fields = $this->view->getHandlers('field', $this->displayHandler->display['id']);
+      $names = array_keys($fields);
+      $this->options['inline'] = array_combine($names, $names);
+    }
+
+    return parent::preRender($row);
+  }
+}