entityTypeManager = $entity_type_manager; $this->moderationInformation = $moderation_information; } /** * Returns the views data. * * @return array * The views data. */ public function getViewsData() { $data = []; $entity_types_with_moderation = array_filter($this->entityTypeManager->getDefinitions(), function (EntityTypeInterface $type) { return $this->moderationInformation->isModeratedEntityType($type); }); foreach ($entity_types_with_moderation as $entity_type) { $table = $entity_type->getDataTable() ?: $entity_type->getBaseTable(); $data[$table]['moderation_state'] = [ 'title' => t('Moderation state'), 'field' => [ 'id' => 'moderation_state_field', 'default_formatter' => 'content_moderation_state', 'field_name' => 'moderation_state', ], 'filter' => ['id' => 'moderation_state_filter', 'allow empty' => TRUE], 'sort' => ['id' => 'moderation_state_sort'], ]; $revision_table = $entity_type->getRevisionDataTable() ?: $entity_type->getRevisionTable(); $data[$revision_table]['moderation_state'] = [ 'title' => t('Moderation state'), 'field' => [ 'id' => 'moderation_state_field', 'default_formatter' => 'content_moderation_state', 'field_name' => 'moderation_state', ], 'filter' => ['id' => 'moderation_state_filter', 'allow empty' => TRUE], 'sort' => ['id' => 'moderation_state_sort'], ]; } return $data; } }