preview_site-1.1.2/src/Plugin/views/field/ItemLinks.php

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

declare(strict_types = 1);

namespace Drupal\preview_site\Plugin\views\field;

use Drupal\preview_site\Entity\PreviewSiteBuildInterface;
use Drupal\views\Plugin\views\field\FieldPluginBase;
use Drupal\views\ResultRow;

/**
 * Displays a dropbutton of links to items in the build.
 *
 * @ingroup views_field_handlers
 *
 * @ViewsField(\Drupal\preview_site\Plugin\views\field\ItemLinks::PLUGIN_ID)
 * @property \Drupal\views\Plugin\views\query\Sql $query
 */
final class ItemLinks extends FieldPluginBase {

  public const PLUGIN_ID = 'preview_site_item_links';


  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values) {
    $entity = $this->getEntity($values);
    if (!$entity instanceof PreviewSiteBuildInterface) {
      return '';
    }

    $deployment_uri = $entity->getDeploymentBaseUri();
    if (!$deployment_uri) {
      return ['#markup' => ''];
    }
    return [
      '#type' => 'operations',
      '#links' => $entity->getItemLinks(),
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function query(): void {
    // Don't call parent and add additional fields only since this is a virtual
    // field.
    $this->addAdditionalFields();
  }

}

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

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