ztools-1.0.x-dev/src/Plugin/views/field/EntityOperationsAsLinks.php

src/Plugin/views/field/EntityOperationsAsLinks.php
<?php

namespace Drupal\ztools\Plugin\views\field;

use Drupal\Core\Link;
use Drupal\views\Plugin\views\field\EntityOperations;
use Drupal\views\ResultRow;

/**
 * Renders all operations links for an entity as individual links.
 *
 * @ingroup views_field_handlers
 *
 * @ViewsField("ztools_entity_operations_links")
 */
class EntityOperationsAsLinks extends EntityOperations {


  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values) {
    $entity = $this->getEntityTranslation($this->getEntity($values), $values);
    $operations = $this->entityTypeManager->getListBuilder($entity->getEntityTypeId())->getOperations($entity);

    if ($this->options['destination']) {
      foreach ($operations as &$operation) {
        if (!isset($operation['query'])) {
          $operation['query'] = [];
        }
        $operation['query'] += $this->getDestinationArray();
      }
    }

    $links = [];
    foreach ($operations as $op) {
      $links[] = Link::fromTextAndUrl(
        $op['title'],
        $op['url']
      );
    }

    return [
      '#theme' => 'item_list',
      '#items' => $links,
    ];
  }


}

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

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