You are here

public function PathAliasListBuilder::buildRow in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/path/src/PathAliasListBuilder.php \Drupal\path\PathAliasListBuilder::buildRow()

Builds a row for an entity in the entity listing.

Parameters

\Drupal\Core\Entity\EntityInterface $entity: The entity for this row of the list.

Return value

array A render array structure of fields for this entity.

Overrides EntityListBuilder::buildRow

See also

\Drupal\Core\Entity\EntityListBuilder::render()

File

core/modules/path/src/PathAliasListBuilder.php, line 162

Class

PathAliasListBuilder
Defines a class to build a listing of path_alias entities.

Namespace

Drupal\path

Code

public function buildRow(EntityInterface $entity) {

  /** @var \Drupal\Core\Path\Entity\PathAlias $entity */
  $langcode = $entity
    ->language()
    ->getId();
  $alias = $entity
    ->getAlias();
  $path = $entity
    ->getPath();
  $url = Url::fromUserInput($path);
  $row['data']['alias']['data'] = [
    '#type' => 'link',
    '#title' => Unicode::truncate($alias, 50, FALSE, TRUE),
    '#url' => $url
      ->setOption('attributes', [
      'title' => $alias,
    ]),
  ];
  $row['data']['path']['data'] = [
    '#type' => 'link',
    '#title' => Unicode::truncate($path, 50, FALSE, TRUE),
    '#url' => $url
      ->setOption('attributes', [
      'title' => $path,
    ]),
  ];
  if ($this->languageManager
    ->isMultilingual()) {
    $row['data']['language_name'] = $this->languageManager
      ->getLanguageName($langcode);
  }
  $row['data']['operations']['data'] = $this
    ->buildOperations($entity);

  // If the system path maps to a different URL alias, highlight this table
  // row to let the user know of old aliases.
  if ($alias != $this->aliasManager
    ->getAliasByPath($path, $langcode)) {
    $row['class'] = [
      'warning',
    ];
  }
  return $row;
}