elasticsearch_search_api-1.0.x-dev/src/Search/Facet/Control/FacetControlInterface.php

src/Search/Facet/Control/FacetControlInterface.php
<?php

namespace Drupal\elasticsearch_search_api\Search\Facet\Control;

use Drupal\elasticsearch_search_api\Search\FacetedSearchActionInterface;
use Drupal\elasticsearch_search_api\Search\SearchResult;

/**
 * Interface for facet control services.
 *
 * Each facet should implements this interface,
 * even if they implement \CompositeFacetControlInterface,
 * in order to render the visual representation of the facet.
 */
interface FacetControlInterface {

  /**
   * Build a render array with the faceting UI.
   *
   * @param string $facet
   *   The facet.
   * @param \Drupal\elasticsearch_search_api\Search\FacetedSearchActionInterface $searchAction
   *   The active search action.
   * @param \Drupal\elasticsearch_search_api\Search\SearchResult $result
   *   The search result.
   *
   * @return array
   *   A render array.
   */
  public function build(string $facet, FacetedSearchActionInterface $searchAction, SearchResult $result): array;

  /**
   * Get the Drupal field (machine) name.
   *
   * See the configured field in search_api.
   *
   * @return string
   *   The field's machine name.
   */
  public function getFieldName(): string;

  /**
   * Indicate if the facet should be added to the query aggregations.
   *
   * Some facets should not necessarily be added to an elastic query's
   * aggregations, for example facets relying on custom forms.
   *
   * @return bool
   *   TRUE if it should be added, FALSE if not.
   */
  public function addToAggregations(): bool;

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc