Мені потрібно додати стовпчик до таблиці, показаної на сторінці, у якій перераховані лексики, визначені для сайту. Як я можу цього досягти?
Мені потрібно додати стовпчик до таблиці, показаної на сторінці, у якій перераховані лексики, визначені для сайту. Як я можу цього досягти?
Відповіді:
Вам потрібно буде перекрити клас, що генерує вихід конструктора списку на цій сторінці, а потім заповнити методи тим, що ви хочете:
/**
* {@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 та скопіюйте з ядра / модулів / таксономії / src / VocabularyListBuilder.php та змініть два способи для виведення (оскільки вони в основному однакові).
Ви також можете це зробити зі сторінкою «Перегляд», але для архівних цілей хотіли пояснити, як це взагалі працює для ядра Drupal. Класи конструкторів списків - така класна і корисна річ D8.