getStorage($entity_type->id())); $this->entityManager = $entity_manager; $this->bundles = $bundle_info_service->getAllBundleInfo(); $this->fieldTypeManager = $field_type_manager; $this->fieldTypes = $this->fieldTypeManager->getDefinitions(); } /** * {@inheritdoc} */ public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) { return new static( $entity_type, $container->get('entity.manager'), $container->get('plugin.manager.field.field_type'), $container->get('entity_type.bundle.info') ); } /** * {@inheritdoc} */ public function buildHeader() { $header['id'] = $this->t('Field name'); $header['entity_type'] = $this->t('Entity type'); $header['type'] = [ 'data' => $this->t('Field type'), 'class' => [RESPONSIVE_PRIORITY_MEDIUM], ]; $header['usage'] = $this->t('Used in'); return $header; } /** * {@inheritdoc} */ public function buildRow(EntityInterface $field_storage) { if ($field_storage->isLocked()) { $row['class'] = ['menu-disabled']; $row['data']['id'] = $this->t('@field_name (Locked)', ['@field_name' => $field_storage->getName()]); } else { $row['data']['id'] = $field_storage->getName(); } $entity_type_id = $field_storage->getTargetEntityTypeId(); // Adding the entity type. $row['data']['entity_type'] = $entity_type_id; $field_type = $this->fieldTypes[$field_storage->getType()]; $row['data']['type'] = $this->t('@type (module: @module)', ['@type' => $field_type['label'], '@module' => $field_type['provider']]); $usage = []; foreach ($field_storage->getBundles() as $bundle) { if ($route_info = FieldUI::getOverviewRouteInfo($entity_type_id, $bundle)) { $usage[] = \Drupal::l($this->bundles[$entity_type_id][$bundle]['label'], $route_info); } else { $usage[] = $this->bundles[$entity_type_id][$bundle]['label']; } } $row['data']['usage']['data'] = [ '#theme' => 'item_list', '#items' => $usage, '#context' => ['list_style' => 'comma-list'], ]; return $row; } }