editoria11y-1.0.0-alpha8/src/Plugin/views/field/DismissalsByIssueLink.php

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

namespace Drupal\editoria11y\Plugin\views\field;

use Drupal\Component\Render\MarkupInterface;
use Drupal\Core\GeneratedLink;
use Drupal\Core\Link;
use Drupal\Core\Url;
use Drupal\editoria11y\TestNames;
use Drupal\views\Plugin\views\field\Standard;
use Drupal\views\Render\ViewsRenderPipelineMarkup;
use Drupal\views\ResultRow;

/**
 * Render a field as a link to the pages by issue view.
 *
 * @ingroup views_field_handlers
 *
 * @ViewsField("editoria11y_dismissals_by_issue_link")
 */
class DismissalsByIssueLink extends Standard {

  /**
   * {@inheritdoc}
   */
  public function render(ResultRow $values): MarkupInterface|string|ViewsRenderPipelineMarkup|GeneratedLink {
    $value = parent::render($values);
    $label = $value;
    if (!empty($value)) {

      $translated = (new TestNames())->coreNames();
      $strung = $value->__toString();
      if ($translated[$strung]) {
        $label = $translated[$strung];
      }
      elseif (isset($values->editoria11y_results_result_name)) {
        $label = $values->editoria11y_results_result_name;
      }

      $url = Url::fromUserInput("/admin/reports/editoria11y/dismissals/" . $strung);

      $value = Link::fromTextAndUrl($label, $url)->toString();

    }

    return $value;
  }

}

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

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