editoria11y-1.0.0-alpha8/src/Plugin/views/field/IssuesByPageLink.php
src/Plugin/views/field/IssuesByPageLink.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\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_issues_by_page_link")
*/
class IssuesByPageLink extends Standard {
/**
* {@inheritdoc}
*/
public function render(ResultRow $values): MarkupInterface|string|ViewsRenderPipelineMarkup|GeneratedLink {
$value = parent::render($values);
if (!empty($value) && isset($values->pid)) {
$label = $value;
$url = Url::fromUserInput("/admin/reports/editoria11y/page", [
'query' => [
'id' => $values->pid,
],
]);
$value = Link::fromTextAndUrl($label, $url)->toString();
}
return $value;
}
}
