You are here

class JsonApiFacetsDeriver in JSON:API Search API 8

Derives a facet source plugin definition for every index.

Hierarchy

Expanded class hierarchy of JsonApiFacetsDeriver

File

modules/jsonapi_search_api_facets/src/Plugin/facets/facet_source/JsonApiFacetsDeriver.php, line 11

Namespace

Drupal\jsonapi_search_api_facets\Plugin\facets\facet_source
View source
class JsonApiFacetsDeriver extends FacetSourceDeriverBase {

  /**
   * {@inheritdoc}
   */
  public function getDerivativeDefinitions($base_plugin_definition) {
    $derivatives = [];
    foreach ($this->entityTypeManager
      ->getStorage('search_api_index')
      ->getQuery()
      ->execute() as $index) {

      // Only derive for an index that supports facets.
      if ($this->entityTypeManager
        ->getStorage('search_api_index')
        ->load($index)
        ->getServerInstance()
        ->supportsFeature('search_api_facets')) {
        $derivatives[$index] = [
          'id' => $base_plugin_definition['id'] . PluginBase::DERIVATIVE_SEPARATOR . $index,
          'display_id' => strtr('jsonapi_search_api_facets_!index', [
            '!index' => $index,
          ]),
          'label' => $this
            ->t('JSON:API Search API Facets: @index', [
            '@index' => $index,
          ]),
          'index' => $index,
        ] + $base_plugin_definition;
      }
    }
    return $derivatives;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FacetSourceDeriverBase::$derivatives protected property List of derivative definitions.
FacetSourceDeriverBase::$entityTypeManager protected property The entity manager.
FacetSourceDeriverBase::$searchApiDisplayPluginManager protected property The search api display plugin manager.
FacetSourceDeriverBase::compareDerivatives public function Compares two plugin definitions according to their labels.
FacetSourceDeriverBase::create public static function Creates a new class instance. Overrides ContainerDeriverInterface::create
FacetSourceDeriverBase::getDerivativeDefinition public function Gets the definition of a derivative plugin. Overrides DeriverInterface::getDerivativeDefinition
FacetSourceDeriverBase::getEntityTypeManager public function Retrieves the entity manager.
FacetSourceDeriverBase::getSearchApiDisplayPluginManager public function Returns the display plugin manager.
FacetSourceDeriverBase::setEntityTypeManager public function Sets the entity manager.
FacetSourceDeriverBase::setSearchApiDisplayPluginManager public function Sets search api's display plugin manager.
JsonApiFacetsDeriver::getDerivativeDefinitions public function Gets the definition of all derivatives of a base plugin. Overrides DeriverInterface::getDerivativeDefinitions
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.