You are here

public function FlagListsFlagListBuilder::buildRow in Flag Lists 4.0.x

File

src/FlagListsFlagListBuilder.php, line 90

Class

FlagListsFlagListBuilder
Defines a class to build an enhanced listing of Flag entities.

Namespace

Drupal\flag_lists

Code

public function buildRow(EntityInterface $entity) {

  /** @var \Drupal\flag_lists\Entity\FlaggingCollection $entity */
  $row['flagListUsage']['#markup'] = $this
    ->t('-');
  $row['creator']['#markup'] = $this
    ->t('-');
  $total = parent::buildRow($entity);
  if (!empty($this->flagListsService
    ->getFlagForListById($entity
    ->id()))) {
    $row['flagListUsage']['#markup'] = $this
      ->t('Template');
  }
  if (!empty($this->flagListsService
    ->getflaggingCollectionIdByRelated($entity
    ->id()))) {
    $config = $this->configFactory
      ->get('flag_lists.settings');
    if ($config
      ->get('hide_collections') == 1) {

      // Don't list the Flagging Collections in the overview.
      return NULL;
    }
    $row['flagListUsage']['#markup'] = $this
      ->t('Flagging Collection');
    $flaggingCollectionId = $this->flagListsService
      ->getflaggingCollectionIdByRelated($entity
      ->id());
    $flaggingCollectionId = array_key_first($flaggingCollectionId);
    $row['creator']['#markup'] = $this->flagListsService
      ->getFlaggingCollectionById($flaggingCollectionId)
      ->getOwner()
      ->getDisplayName();

    // Add the Flagging Collection Canonical link.
    $flaggingCollectionId = implode("|", $this->flagListsService
      ->getflaggingCollectionIdByRelated($entity
      ->id()));
    $firstItem['view']['title'] = $this
      ->t('View');
    $firstItem['view']['weight'] = 10;
    $firstItem['view']['url'] = Url::fromRoute('entity.flagging_collection.canonical', [
      'flagging_collection' => $flaggingCollectionId,
    ]);
    $subTotal = $firstItem + $total['operations']['data']['#links'];
    $total['operations']['data']['#links'] = $subTotal;

    // Also unset some operations that must be handle at other places.
    unset($total['operations']['data']['#links']['edit']);
    unset($total['operations']['data']['#links']['disable']);
    unset($total['operations']['data']['#links']['delete']);
    unset($total['operations']['data']['#links']['reset']);
    unset($total['operations']['data']['#links']['manage-fields']);
    unset($total['operations']['data']['#links']['manage-form-display']);
    unset($total['operations']['data']['#links']['manage-display']);
  }
  $first_array = array_splice($total, 0, 5);
  $total = array_merge($first_array, $row, $total);
  return $total;
}