degov-8.x-2.0/modules/degov_paragraph_view_reference/src/Plugin/Field/FieldFormatter/ViewsReferenceLabelFormatter.php

modules/degov_paragraph_view_reference/src/Plugin/Field/FieldFormatter/ViewsReferenceLabelFormatter.php
<?php

namespace Drupal\degov_paragraph_view_reference\Plugin\Field\FieldFormatter;

use Drupal\views\Views;
use Drupal\Core\Field\FieldItemListInterface;
use Drupal\Core\Field\FormatterBase;

/**
 * Field formatter for Viewsreference Field.
 *
 * @FieldFormatter(
 *   id = "degov_viewsreference_label",
 *   label = @Translation("Views Label"),
 *   field_types = {"viewsreference"}
 * )
 */
class ViewsReferenceLabelFormatter extends FormatterBase {

  /**
   * Builds a renderable array for a field value.
   *
   * @param \Drupal\Core\Field\FieldItemListInterface $items
   *   The field values to be rendered.
   * @param string $langcode
   *   The language that should be used to render the field.
   *
   * @return array
   *   A renderable array for $items, as an array of child elements keyed by
   *   consecutive numeric indexes starting from 0.
   */
  public function viewElements(FieldItemListInterface $items, $langcode) {
    $elements = [];
    foreach ($items as $delta => $item) {
      $view_name = $item->getValue()['target_id'];
      $view = Views::getView($view_name);
      // Someone may have deleted the View.
      if (!is_object($view)) {
        continue;
      }
      $title = $view->getTitle();
      $title_render_array = array(
        '#theme' => 'viewsreference__view_title',
        '#title' => $this->t($title),
      );
      $elements[$delta]['title'] = $title_render_array;
    }
    return $elements;
  }
}

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

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