diff --git a/src/Plugin/facets/processor/BooleanItemProcessor.php b/src/Plugin/facets/processor/BooleanItemProcessor.php index db10e9d..0a35ffb 100644 --- a/src/Plugin/facets/processor/BooleanItemProcessor.php +++ b/src/Plugin/facets/processor/BooleanItemProcessor.php @@ -6,6 +6,7 @@ use Drupal\Core\Form\FormStateInterface; use Drupal\facets\Processor\BuildProcessorInterface; use Drupal\facets\Processor\ProcessorPluginBase; +use Drupal\search_api\Processor\ProcessorPropertyInterface; /** * Provides a processor for boolean labels. @@ -89,6 +90,10 @@ public function defaultConfiguration() { */ public function supportsFacet(FacetInterface $facet) { $data_definition = $facet->getDataDefinition(); + if ($data_definition instanceof ProcessorPropertyInterface) { + return FALSE; + } + $property_definitions = $data_definition->getPropertyDefinitions(); foreach ($property_definitions as $definition) { if ($definition->getDataType() == "boolean") { diff --git a/src/Plugin/facets/processor/TranslateEntityProcessor.php b/src/Plugin/facets/processor/TranslateEntityProcessor.php index b7402b8..771c75a 100644 --- a/src/Plugin/facets/processor/TranslateEntityProcessor.php +++ b/src/Plugin/facets/processor/TranslateEntityProcessor.php @@ -11,6 +11,7 @@ use Drupal\facets\FacetInterface; use Drupal\facets\Processor\BuildProcessorInterface; use Drupal\facets\Processor\ProcessorPluginBase; +use Drupal\search_api\Processor\ProcessorPropertyInterface; use Symfony\Component\DependencyInjection\ContainerInterface; /** @@ -141,6 +142,10 @@ public function build(FacetInterface $facet, array $results) { */ public function supportsFacet(FacetInterface $facet) { $data_definition = $facet->getDataDefinition(); + if ($data_definition instanceof ProcessorPropertyInterface) { + return FALSE; + } + $property_definitions = $data_definition->getPropertyDefinitions(); foreach ($property_definitions as $definition) { if ($definition instanceof DataReferenceDefinitionInterface && $definition->getDataType() === 'entity_reference') { diff --git a/src/Plugin/facets/processor/UidToUserNameCallbackProcessor.php b/src/Plugin/facets/processor/UidToUserNameCallbackProcessor.php index 2f89130..490f9f9 100644 --- a/src/Plugin/facets/processor/UidToUserNameCallbackProcessor.php +++ b/src/Plugin/facets/processor/UidToUserNameCallbackProcessor.php @@ -6,6 +6,7 @@ use Drupal\facets\FacetInterface; use Drupal\facets\Processor\BuildProcessorInterface; use Drupal\facets\Processor\ProcessorPluginBase; +use Drupal\search_api\Processor\ProcessorPropertyInterface; use Drupal\user\Entity\User; /** @@ -45,6 +46,10 @@ public function build(FacetInterface $facet, array $results) { */ public function supportsFacet(FacetInterface $facet) { $data_definition = $facet->getDataDefinition(); + if ($data_definition instanceof ProcessorPropertyInterface) { + return FALSE; + } + $property_definitions = $data_definition->getPropertyDefinitions(); foreach ($property_definitions as $definition) { if ( diff --git a/tests/src/Functional/AggregatedFieldTest.php b/tests/src/Functional/AggregatedFieldTest.php index e728bd3..c0e2c8e 100644 --- a/tests/src/Functional/AggregatedFieldTest.php +++ b/tests/src/Functional/AggregatedFieldTest.php @@ -4,7 +4,6 @@ use Drupal\entity_test\Entity\EntityTestMulRevChanged; use Drupal\search_api\Entity\Index; -use Drupal\search_api\Utility\FieldsHelper; use Drupal\search_api\Utility\Utility; use Drupal\user\Entity\User; @@ -56,18 +55,18 @@ public function setUp() { $index = Index::load($this->indexId); $index->addDatasource($plugin_creation_helper->createDatasourcePlugin($index, 'entity:user')); $index->addProcessor($plugin_creation_helper->createProcessorPlugin($index, 'aggregated_field')); - $field = $fields_helper->createField($index, 'aggregated_field', [ - 'property_path' => 'aggregated_field', - 'configuration' => [ - 'type' => 'union', - 'fields' => [ - Utility::createCombinedId('entity:entity_test_mulrev_changed', 'name'), - Utility::createCombinedId('entity:user', 'name'), - ], + $field = $fields_helper->createField($index, 'aggregated_field', ['property_path' => 'aggregated_field']); + $field->setConfiguration([ + 'type' => 'union', + 'fields' => [ + Utility::createCombinedId('entity:entity_test_mulrev_changed', 'name'), + Utility::createCombinedId('entity:user', 'name'), ], ]); + $field->setDataDefinition(); $index->addField($field); $index->save(); + $this->drupalGet('admin/config/search/search-api/index/'); $this->indexItems($this->indexId); }