Saya perlu menambahkan kolom ke tabel yang ditunjukkan pada halaman yang berisi daftar kosa kata yang ditentukan untuk suatu situs. Bagaimana saya bisa mencapai ini?
Saya perlu menambahkan kolom ke tabel yang ditunjukkan pada halaman yang berisi daftar kosa kata yang ditentukan untuk suatu situs. Bagaimana saya bisa mencapai ini?
Jawaban:
Anda perlu menimpa kelas yang menghasilkan output builder daftar pada halaman ini, lalu isi metode dengan apa yang Anda inginkan:
/**
* {@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);
}
Lihat pertanyaan terkait ini: Bisakah Anda mengubah kelas pembuat daftar yang digunakan oleh suatu entitas?
Jadi, pada intinya:
function mymodule_entity_type_alter(array &$entity_types) {
/** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
$entity_types['taxonomy_vocabulary']->setListBuilderClass('Drupal\mymodule\VocabularyListBuilder');
}
Kemudian, di folder mymodule / src Anda, buat VocabularyListBuilder.php, dan salin dari core / modules / taxonomy / src / VocabularyListBuilder.php dan modifikasi dua metode di atas untuk output Anda (karena pada dasarnya akan sama).
Anda juga bisa melakukan ini dengan halaman Tampilan juga, tetapi untuk tujuan arsip ingin menjelaskan bagaimana ini bekerja secara umum untuk inti Drupal. Daftar kelas pembangun adalah hal D8 baru yang keren dan bermanfaat.