ฉันจะเพิ่มคอลัมน์ในตารางที่แสดงในหน้ารายการคำศัพท์ได้อย่างไร


9

ฉันต้องการเพิ่มคอลัมน์ในตารางที่แสดงในหน้าเว็บที่แสดงรายการคำศัพท์ที่กำหนดไว้สำหรับไซต์ ฉันจะบรรลุสิ่งนี้ได้อย่างไร

รายการคำศัพท์

คำตอบ:


10

คุณจะต้องแทนที่คลาสที่สร้างเอาต์พุต list builder ในหน้านี้จากนั้นกรอกวิธีการที่คุณต้องการ:

  /**
   * {@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 ใหม่ที่ยอดเยี่ยมและมีประโยชน์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.