class ArrayWidget in Facets 8
A simple widget class that returns a simple array of the facet results.
Plugin annotation
@FacetsWidget(
id = "array",
label = @Translation("Array with raw results"),
description = @Translation("A widget that builds an array with results. This widget is not supposed to display any results, but it is needed for rest integration."),
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\facets\Widget\WidgetPluginBase implements WidgetPluginInterface
- class \Drupal\facets\Plugin\facets\widget\ArrayWidget
- class \Drupal\facets\Widget\WidgetPluginBase implements WidgetPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ArrayWidget
2 files declare their use of ArrayWidget
- ArrayWidgetTest.php in tests/
src/ Unit/ Plugin/ widget/ ArrayWidgetTest.php - SliderProcessorTest.php in modules/
facets_range_widget/ tests/ src/ Unit/ Plugin/ processor/ SliderProcessorTest.php
File
- src/
Plugin/ facets/ widget/ ArrayWidget.php, line 18
Namespace
Drupal\facets\Plugin\facets\widgetView source
class ArrayWidget extends WidgetPluginBase {
/**
* {@inheritdoc}
*/
public function build(FacetInterface $facet) {
/** @var \Drupal\facets\Result\Result[] $results */
$results = $facet
->getResults();
$items = [];
$configuration = $facet
->getWidget();
$this->showNumbers = empty($configuration['show_numbers']) ? FALSE : (bool) $configuration['show_numbers'];
foreach ($results as $result) {
if (is_null($result
->getUrl())) {
$text = $this
->generateValues($result);
$items[$facet
->getFieldIdentifier()][] = $text;
}
else {
$items[$facet
->getFieldIdentifier()][] = $this
->buildListItems($facet, $result);
}
}
return $items;
}
/**
* {@inheritdoc}
*/
protected function buildListItems(FacetInterface $facet, ResultInterface $result) {
if ($children = $result
->getChildren()) {
$items = $this
->prepare($result);
$children_markup = [];
foreach ($children as $child) {
$children_markup[] = $this
->buildChildren($child);
}
$items['children'] = [
$children_markup,
];
}
else {
$items = $this
->prepare($result);
}
return $items;
}
/**
* Prepares the URL and values for the facet.
*
* @param \Drupal\facets\Result\ResultInterface $result
* A result item.
*
* @return array
* The results.
*/
protected function prepare(ResultInterface $result) {
$values = $this
->generateValues($result);
if (is_null($result
->getUrl())) {
$facet_values = $values;
}
else {
$facet_values['url'] = $result
->getUrl()
->setAbsolute()
->toString();
$facet_values['values'] = $values;
}
return $facet_values;
}
/**
* Builds an array for children results.
*
* @param \Drupal\facets\Result\ResultInterface $child
* A result item.
*
* @return array
* An array with the results.
*/
protected function buildChildren(ResultInterface $child) {
$values = $this
->generateValues($child);
if (!is_null($child
->getUrl())) {
$facet_values['url'] = $child
->getUrl()
->setAbsolute()
->toString();
$facet_values['values'] = $values;
}
else {
$facet_values = $values;
}
return $facet_values;
}
/**
* Generates the value and the url.
*
* @param \Drupal\facets\Result\ResultInterface $result
* The result to extract the values.
*
* @return array
* The values.
*/
protected function generateValues(ResultInterface $result) {
$values['value'] = $result
->getDisplayValue();
if ($this
->getConfiguration()['show_numbers'] && $result
->getCount() !== FALSE) {
$values['count'] = $result
->getCount();
}
if ($result
->isActive()) {
$values['active'] = 'true';
}
return $values;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ArrayWidget:: |
public | function |
Builds the facet widget for rendering. Overrides WidgetPluginBase:: |
|
ArrayWidget:: |
protected | function | Builds an array for children results. | |
ArrayWidget:: |
protected | function |
Builds a renderable array of result items. Overrides WidgetPluginBase:: |
|
ArrayWidget:: |
protected | function | Generates the value and the url. | |
ArrayWidget:: |
protected | function | Prepares the URL and values for the facet. | |
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 | |
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. | |
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. | |
WidgetPluginBase:: |
protected | property | The facet the widget is being built for. | |
WidgetPluginBase:: |
protected | property | Show the amount of results next to the result. | |
WidgetPluginBase:: |
public | function |
Provides a configuration form for this widget. Overrides WidgetPluginInterface:: |
3 |
WidgetPluginBase:: |
protected | function | Builds a facet result item. | |
WidgetPluginBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
WidgetPluginBase:: |
public | function |
Gets default configuration for this plugin. Overrides ConfigurableInterface:: |
3 |
WidgetPluginBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
WidgetPluginBase:: |
protected | function | Provides a full array of possible theme functions to try for a given hook. | |
WidgetPluginBase:: |
public | function |
Picks the preferred query type for this widget. Overrides WidgetPluginInterface:: |
3 |
WidgetPluginBase:: |
public | function |
Checks is a specific property is required for this widget. Overrides WidgetPluginInterface:: |
2 |
WidgetPluginBase:: |
protected | function | Returns the text or link for an item. | |
WidgetPluginBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
WidgetPluginBase:: |
public | function |
Checks if the facet is supported by this processor. Overrides WidgetPluginInterface:: |
1 |
WidgetPluginBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |