class GlossaryAZAllItemsProcessor in Search API AZ Glossary 8.4
Same name and namespace in other branches
- 8 src/Plugin/facets/processor/GlossaryAZAllItemsProcessor.php \Drupal\search_api_glossary\Plugin\facets\processor\GlossaryAZAllItemsProcessor
- 8.2 src/Plugin/facets/processor/GlossaryAZAllItemsProcessor.php \Drupal\search_api_glossary\Plugin\facets\processor\GlossaryAZAllItemsProcessor
- 8.3 src/Plugin/facets/processor/GlossaryAZAllItemsProcessor.php \Drupal\search_api_glossary\Plugin\facets\processor\GlossaryAZAllItemsProcessor
Provides a processor to show All items in Glossary AZ.
Plugin annotation
@FacetsProcessor(
id = "glossaryaz_all_items_processor",
label = @Translation("All items in Glossary AZ"),
description = @Translation("Option to show All items in Glossary AZ. Make sure URL Handler runs BEFORE this processor (see: Advanced settings > Build Stage)"),
stages = {
"build" = 10
}
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\facets\Processor\ProcessorPluginBase implements ProcessorInterface uses DependencyTrait
- class \Drupal\search_api_glossary\Plugin\facets\processor\GlossaryAZAllItemsProcessor implements ContainerFactoryPluginInterface, BuildProcessorInterface
- class \Drupal\facets\Processor\ProcessorPluginBase implements ProcessorInterface uses DependencyTrait
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of GlossaryAZAllItemsProcessor
File
- src/
Plugin/ facets/ processor/ GlossaryAZAllItemsProcessor.php, line 28
Namespace
Drupal\search_api_glossary\Plugin\facets\processorView source
class GlossaryAZAllItemsProcessor extends ProcessorPluginBase implements BuildProcessorInterface, ContainerFactoryPluginInterface {
/**
* The pager parameters.
*
* @var \Drupal\Core\Pager\PagerParametersInterface
*/
protected $pagerParams;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
$instance = new static($configuration, $plugin_id, $plugin_definition);
return $instance
->setPagerParams($container
->get('pager.parameters'));
}
/**
* Sets pager parameters service.
*
* @param \Drupal\Core\Pager\PagerParametersInterface $pager_params
*
* @return $this
* Current object.
*/
public function setPagerParams(PagerParametersInterface $pager_params) {
$this->pagerParams = $pager_params;
return $this;
}
/**
* {@inheritdoc}
*/
public function build(FacetInterface $facet, array $results) {
// Process the results count.
$show_all_item_count = 0;
// TODO revise this logic based on progress with
// All items count is not correct when narrowing the results.
// https://www.drupal.org/project/facets/issues/2692027
// see https://git.drupalcode.org/project/facets/commit/21343a6
foreach ($results as $result) {
$show_all_item_count += $result
->getCount();
}
$show_all_item = new Result($facet, t('All')
->getUntranslatedString(), t('All'), $show_all_item_count);
// Deal with the ALL Items path.
// See QueryString::buildUrls.
$path = Request::create($facet
->getFacetSource()
->getPath());
$url = Url::createFromRequest($path);
// First get the current list of get parameters without pager.
$get_params = new ParameterBag($this->pagerParams
->getQueryParameters());
// See UrlProcessorPluginBase::__construct.
$facet_source_config = $facet
->getFacetSourceConfig();
$filterKey = $facet_source_config
->getFilterKey() ?: 'f';
// See QueryString::buildUrls.
$filter_params = $get_params
->get($filterKey, [], TRUE);
// Remove the filter string from the parameters.
foreach ($filter_params as $key => $filter_param) {
unset($filter_params[$key]);
}
$get_params
->set($filterKey, array_values($filter_params));
$url
->setOption('query', $get_params
->all());
// Set the path.
$show_all_item
->setUrl($url);
// If no other facets are selected, default to ALL.
if (empty($facet
->getActiveItems())) {
$show_all_item
->setActiveState(TRUE);
}
// All done.
$results[] = $show_all_item;
return $results;
}
/**
* {@inheritdoc}
*/
public function supportsFacet(FacetInterface $facet) {
// Check if
// 1) The correct widget is chosen for the facet
// 2) If the glossary processor is enabled in Search API index.
$widget = $facet
->getWidget()['type'];
$search_processors = $facet
->getFacetSource()
->getIndex()
->getProcessors();
if ($widget == 'glossaryaz' && array_key_exists('glossary', $search_processors)) {
// Glossary processor is enabled.
return TRUE;
}
return FALSE;
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. | |
GlossaryAZAllItemsProcessor:: |
protected | property | The pager parameters. | |
GlossaryAZAllItemsProcessor:: |
public | function |
Runs before the renderable array is created. Overrides BuildProcessorInterface:: |
|
GlossaryAZAllItemsProcessor:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
GlossaryAZAllItemsProcessor:: |
public | function | Sets pager parameters service. | |
GlossaryAZAllItemsProcessor:: |
public | function |
Checks if the facet is supported by this widget. Overrides ProcessorPluginBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginBase:: |
public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | 92 |
ProcessorInterface:: |
constant | Processing stage: build. | ||
ProcessorInterface:: |
constant | Processing stage: post_query. | ||
ProcessorInterface:: |
constant | Processing stage: pre_query. | ||
ProcessorInterface:: |
constant | Processing stage: sort. | ||
ProcessorPluginBase:: |
public | function |
Adds a configuration form for this processor. Overrides ProcessorInterface:: |
10 |
ProcessorPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ProcessorPluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
8 |
ProcessorPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ProcessorPluginBase:: |
public | function |
Returns the default weight for a specific processing stage. Overrides ProcessorInterface:: |
|
ProcessorPluginBase:: |
public | function |
Retrieves the processor description. Overrides ProcessorInterface:: |
|
ProcessorPluginBase:: |
public | function |
Picks the preferred query type for this widget. Overrides ProcessorInterface:: |
4 |
ProcessorPluginBase:: |
public | function |
Determines whether this processor should be hidden from the user. Overrides ProcessorInterface:: |
|
ProcessorPluginBase:: |
public | function |
Determines whether this processor should always be enabled. Overrides ProcessorInterface:: |
|
ProcessorPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ProcessorPluginBase:: |
public | function | ||
ProcessorPluginBase:: |
public | function |
Checks whether this processor implements a particular stage. Overrides ProcessorInterface:: |
|
ProcessorPluginBase:: |
public | function |
Validates a configuration form for this processor. Overrides ProcessorInterface:: |
2 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |