dateFormatter = $date_formatter; } /** * {@inheritdoc} */ public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) { return new static( $entity_type, $container->get('entity.manager')->getStorage($entity_type->id()), $container->get('date.formatter') ); } /** * {@inheritdoc} */ public function buildHeader() { $header = [ 'word' => $this->t('Word'), 'synonyms' => $this->t('Synonyms'), 'author' => [ 'data' => $this->t('Author'), 'class' => [RESPONSIVE_PRIORITY_LOW], ], 'status' => [ 'data' => $this->t('Status'), 'class' => [RESPONSIVE_PRIORITY_LOW], ], 'changed' => [ 'data' => $this->t('Updated'), 'class' => [RESPONSIVE_PRIORITY_LOW], ], ]; if (\Drupal::languageManager()->isMultilingual()) { $header['language_name'] = [ 'data' => $this->t('Language'), 'class' => [RESPONSIVE_PRIORITY_LOW], ]; } return $header + parent::buildHeader(); } /** * {@inheritdoc} */ public function buildRow(EntityInterface $entity) { $langcode = $entity->language()->getId(); /* @var $entity \Drupal\search_api_synonym\Entity\Synonym */ $row['word'] = $this->buildEditLink($entity->label(), $entity); $row['synonyms'] = $this->buildEditLink($entity->getSynonyms(), $entity); $row['author']['data'] = [ '#theme' => 'username', '#account' => $entity->getOwner(), ]; $row['status'] = $entity->isActive() ? $this->t('active') : $this->t('inactive'); $row['changed'] = $this->dateFormatter->format($entity->getChangedTime(), 'short'); $language_manager = \Drupal::languageManager(); if ($language_manager->isMultilingual()) { $row['language_name'] = $language_manager->getLanguageName($langcode); } return $row + parent::buildRow($entity); } /** * Build the edit link object. * * @param string $label * The label used in the link * * @param \Drupal\search_api_synonym\Entity\Synonym $entity * The synonym entity object. * * @return \Drupal\Core\Link * The build link object. */ private function buildEditLink($label, $entity) { return new Link( $label, new Url( 'entity.search_api_synonym.edit_form', [ 'search_api_synonym' => $entity->id(), ] ) ); } }