Version 1
[yaffs-website] / web / core / modules / views / src / Plugin / views / field / EntityLink.php
diff --git a/web/core/modules/views/src/Plugin/views/field/EntityLink.php b/web/core/modules/views/src/Plugin/views/field/EntityLink.php
new file mode 100644 (file)
index 0000000..2cd402c
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+namespace Drupal\views\Plugin\views\field;
+
+use Drupal\views\ResultRow;
+
+/**
+ * Field handler to present a link to an entity.
+ *
+ * @ingroup views_field_handlers
+ *
+ * @ViewsField("entity_link")
+ */
+class EntityLink extends LinkBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function render(ResultRow $row) {
+    return $this->getEntity($row) ? parent::render($row) : [];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getUrlInfo(ResultRow $row) {
+    $template = $this->getEntityLinkTemplate();
+    return $this->getEntity($row)->urlInfo($template);
+  }
+
+  /**
+   * Returns the entity link template name identifying the link route.
+   *
+   * @returns string
+   *   The link template name.
+   */
+  protected function getEntityLinkTemplate() {
+    return 'canonical';
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function getDefaultLabel() {
+    return $this->t('view');
+  }
+
+}