diff --git a/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php b/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php index 598641c..18e3830 100644 --- a/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php +++ b/src/Plugin/monitoring/SensorPlugin/EntityAggregatorSensorPlugin.php @@ -203,9 +203,10 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im // ); // Load entities. - $entity_type = $this->getEntityTypeId(); + $entity_type = $this->entityManager->getDefinition($this->getEntityTypeId()); + $entity_type_id = $this->getEntityTypeId(); $entities = $this->entityManager - ->getStorage($entity_type) + ->getStorage($entity_type_id) ->loadMultiple($entity_ids); // Get the fields to display from the settings. @@ -216,6 +217,9 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im foreach ($entities as $id => $entity) { $row = []; foreach ($fields as $field) { + if (isset($entity_type->getKeys()[$field])) { + $field = $entity_type->getKeys()[$field]; + } switch ($field) { case 'uuid': $row[] = $entity->uuid(); @@ -246,12 +250,9 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im default: $property = $entity->getFieldDefinition($field)->getFieldStorageDefinition()->getMainPropertyName(); $field_type = $entity->getFieldDefinition($field)->getFieldStorageDefinition()->getType(); - $ui_definitions = $field_type_manager->getUiDefinitions(); $value = $entity->$field->$property; - if (!empty($ui_definitions[$field_type])) { - if (isset($ui_definitions[$field_type]['default_formatter'])) { - $value = $entity->$field->view(['label' => 'hidden']); - } + if (isset($field_type_manager->getDefinition($field_type)['default_formatter'])) { + $value = $entity->$field->view(['label' => 'hidden']); } $row[] = \Drupal::service('renderer')->renderPlain($value); break; @@ -423,13 +424,14 @@ class EntityAggregatorSensorPlugin extends DatabaseAggregatorSensorPluginBase im '#suffix' => '', ); $entity_type = $this->entityManager->getDefinition($this->getEntityTypeId()); - $available_fields = array_keys($this->entityManager->getBaseFieldDefinitions($this->getEntityTypeId())); - $keys = array_flip($entity_type->getKeys()); - foreach ($available_fields as $delta => $field) { - if (isset($keys[$field])) { - if ($field != $keys[$field]) { - $available_fields[$delta] = $field . ' (' . $keys[$field] . ')'; - } + $keys = $entity_type->getKeys(); + $available_fields = []; + foreach ($keys as $delta => $field) { + if (empty($field) || !strcmp($field, $delta)) { + $available_fields[] = $delta; + } + else { + $available_fields[] = $field . ' (' . $delta . ')'; } } $form['verbose_fields']['available_fields'] = [