語彙リストページに表示されるテーブルに列を追加するにはどうすればよいですか?


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からコピーし、上記の2つのメソッドを出力用に変更します(基本的に同じであるため)。

Viewページでもこれを行うことができますが、アーカイブの目的で、これがDrupalコアで一般的にどのように機能するかを説明する必要がありました。リストビルダークラスは、とてもクールで便利な新しいD8です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.