Как добавить столбец в таблицу, показанную на странице списка словаря?

9

Мне нужно добавить столбец в таблицу, показанную на странице со списком слов, определенных для сайта. Как мне этого добиться?

список слов

Сонам ​​сингх
источник

Ответы:

10

Вам нужно переопределить класс, генерирующий выходные данные построителя списка на этой странице, а затем заполнить методы тем, что вы хотите:

  /**
   * {@inheritdoc}
   */
  public function buildHeader() {
    $header['label'] = t('Vocabulary name');
    $header['foo'] = t('Custom Header');
    return $header + parent::buildHeader();
  }

  /**
   * {@inheritdoc}
   */
  public function buildRow(EntityInterface $entity) {
    $row['label'] = $entity->label();
    $row['foo'] = 'custom_value';
    return $row + parent::buildRow($entity);
  }

Посмотрите этот связанный вопрос: можете ли вы изменить класс построителя списка, используемый сущностью?

Итак, по существу:

function mymodule_entity_type_alter(array &$entity_types) {
  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  $entity_types['taxonomy_vocabulary']->setListBuilderClass('Drupal\mymodule\VocabularyListBuilder');
}

Затем в папке mymodule / src создайте файл VocabularyListBuilder.php и скопируйте его из файла core / modules / taxonomy / src / VocabularyListBuilder.php. и измените два указанных выше метода для вывода (так как они будут в основном идентичны).

Вы также можете сделать это со страницей просмотра, но для архивных целей хотел объяснить, как это работает в целом для ядра Drupal. Классы построения списков - это классная и полезная новинка для D8.

Kevin
источник