Können Sie die von einer Entität verwendete List Builder-Klasse ändern?


8

Es gibt eine Entität, die von einem anderen Modul erstellt wurde, und ich möchte einige der auf einer Listenseite verwendeten Felder ändern. Derzeit verwendet diese Seite die List Builder-Klasse der Entität. Gibt es eine Möglichkeit, eine neue List Builder-Klasse zu definieren, meine Änderungen vorzunehmen und diese für diese Entität zu verwenden? Ich habe dies bis zu dem Punkt verfolgt, an dem D8 die Entitätsdefinition erhält, und lade die List Builder-Klasse daraus. Ich kann hier keine Möglichkeit finden, die Definitionen zu ändern oder eine andere Klasse einzufügen.

Genauer gesagt habe ich mit ECK eine Entität erstellt und möchte die Funktionalität überschreiben EckEntityListBuilder.


hook_entity_type_info_alter oder so ähnlich.

Antworten:


16

Sie wollen so etwas:

<?php

/**
 * Implements hook_entity_type_alter().
 */
function MY_MODULE_entity_type_alter(array &$entity_types) {
  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  $entity_types['node']->setListBuilderClass('Drupal\MY_MODULE\NewListBuilder');
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.