Bir site için tanımlanan kelimeleri listeleyen sayfada gösterilen tabloya bir sütun eklemeniz gerekir. Bunu nasıl başarabilirim?
Bir site için tanımlanan kelimeleri listeleyen sayfada gösterilen tabloya bir sütun eklemeniz gerekir. Bunu nasıl başarabilirim?
Yanıtlar:
Bu sayfada liste oluşturucu çıktısını oluşturan sınıfı geçersiz kılmanız, ardından yöntemleri istediğiniz şekilde doldurmanız gerekir:
/**
* {@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);
}
Bu ilgili soruya bakın: Bir varlık tarafından kullanılan liste oluşturucu sınıfını değiştirebilir misiniz?
Yani, özünde:
function mymodule_entity_type_alter(array &$entity_types) {
/** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
$entity_types['taxonomy_vocabulary']->setListBuilderClass('Drupal\mymodule\VocabularyListBuilder');
}
Ardından, mymodule / src klasörünüzde bir VocabularyListBuilder.php oluşturun ve core / modules / taxonomy / src / VocabularyListBuilder.php dosyasından kopyalayın ve çıktınız için yukarıdaki iki yöntemi değiştirin (temelde aynı olacaklardır).
Bunu bir Görünüm sayfasıyla da yapabilirsiniz, ancak arşivleme amacıyla bunun Drupal çekirdeği için genel olarak nasıl çalıştığını açıklamak istedim. Liste oluşturucu sınıfları çok havalı ve kullanışlı yeni bir D8 şeyidir.