UserListBuilder::buildRow

public UserListBuilder::buildRow(EntityInterface $entity)

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/user/src/UserListBuilder.php, line 130

Class

UserListBuilder
Defines a class to build a listing of user entities.

Namespace

Drupal\user

Code

public function buildRow(EntityInterface $entity) {
  $row['username']['data'] = array(
    '#theme' => 'username',
    '#account' => $entity,
  );
  $row['status'] = $entity->isActive() ? $this->t('active') : $this->t('blocked');

  $roles = user_role_names(TRUE);
  unset($roles[RoleInterface::AUTHENTICATED_ID]);
  $users_roles = array();
  foreach ($entity->getRoles() as $role) {
    if (isset($roles[$role])) {
      $users_roles[] = $roles[$role];
    }
  }
  asort($users_roles);
  $row['roles']['data'] = array(
    '#theme' => 'item_list',
    '#items' => $users_roles,
  );
  $options = [
    'return_as_object' => TRUE,
  ];
  $row['member_for']['data'] = $this->dateFormatter->formatTimeDiffSince($entity->getCreatedTime(), $options)->toRenderable();
  $last_access = $this->dateFormatter->formatTimeDiffSince($entity->getLastAccessedTime(), $options);

  if ($entity->getLastAccessedTime()) {
    $row['access']['data']['#markup'] = $last_access->getString();
    CacheableMetadata::createFromObject($last_access)->applyTo($row['access']['data']);
  }
  else {
    $row['access']['data']['#markup'] = t('never');
  }
  return $row + parent::buildRow($entity);
}
doc_Drupal
2016-10-29 09:52:38
Comments
Leave a Comment

Please login to continue.