답변:
이 페이지에서 목록 빌더 출력을 생성하는 클래스를 대체 한 후 메소드를 원하는대로 채 웁니다.
/**
* {@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입니다.