어휘 목록 페이지에 표시된 표에 열을 어떻게 추가합니까?


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 에서 복사 하여 출력에 대해 위의 두 가지 방법을 수정하십시오 (기본적으로 동일하므로).

View 페이지에서도이 작업을 수행 할 수 있지만 보관 목적으로 Drupal 코어에서 일반적으로 어떻게 작동하는지 설명하고 싶었습니다. 리스트 빌더 클래스는 멋지고 유용한 새로운 D8입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.