class GlossaryAZWidget in Search API AZ Glossary 8
Same name and namespace in other branches
- 8.4 src/Plugin/facets/widget/GlossaryAZWidget.php \Drupal\search_api_glossary\Plugin\facets\widget\GlossaryAZWidget
- 8.2 src/Plugin/facets/widget/GlossaryAZWidget.php \Drupal\search_api_glossary\Plugin\facets\widget\GlossaryAZWidget
- 8.3 src/Plugin/facets/widget/GlossaryAZWidget.php \Drupal\search_api_glossary\Plugin\facets\widget\GlossaryAZWidget
The GlossaryAZ widget.
Plugin annotation
@FacetsWidget(
id = "glossaryaz",
label = @Translation("Glossary AZ"),
description = @Translation("A simple widget that shows a Glossary AZ"),
)
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\search_api_glossary\Plugin\facets\widget\GlossaryAZWidget implements WidgetPluginInterface
- class \Drupal\facets\Widget\WidgetPluginBase implements WidgetPluginInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of GlossaryAZWidget
File
- src/
Plugin/ facets/ widget/ GlossaryAZWidget.php, line 21
Namespace
Drupal\search_api_glossary\Plugin\facets\widgetView source
class GlossaryAZWidget extends WidgetPluginBase implements WidgetPluginInterface {
/**
* {@inheritdoc}
*/
public function build(FacetInterface $facet) {
/** @var \Drupal\facets\Result\Result[] $results */
$results = $facet
->getResults();
$items = [];
$configuration = $facet
->getWidget()['config'];
$enable_default_theme = empty($configuration['enable_default_theme']) ? FALSE : (bool) $configuration['enable_default_theme'];
foreach ($results as $result) {
$items[] = $this
->buildListItems($result);
}
$build = [
'#theme' => 'item_list',
'#items' => $items,
'#cache' => [
'contexts' => [
'url.path',
'url.query_args',
],
],
];
if ($enable_default_theme) {
$build['#attached'] = array(
'library' => array(
'search_api_glossary/drupal.search_api_glossary.facet_css',
),
);
}
return $build;
}
/**
* Builds a renderable array of result items.
*
* @param \Drupal\facets\Result\ResultInterface $result
* A result item.
*
* @return array
* A renderable array of the result.
*/
protected function buildListItems(ResultInterface $result) {
$classes = [
'facet-item',
'glossaryaz',
];
// Not sure if glossary will have children.
// Removed chilren processing for now.
$items = $this
->prepareLink($result);
if ($result
->isActive()) {
$items['#attributes'] = [
'class' => 'is-active',
];
$classes[] = 'is-active';
}
else {
$items['#attributes'] = [
'class' => 'is-inactive',
];
}
// Add result, no result classes.
if ($result
->getCount() == 0) {
$classes[] = 'no-results';
}
else {
$classes[] = 'yes-results';
}
$items['#wrapper_attributes'] = [
'class' => $classes,
];
return $items;
}
/**
* Returns the text or link for an item.
*
* @param \Drupal\facets\Result\ResultInterface $result
* A result item.
*
* @return array
* The item, as a renderable array.
*/
protected function prepareLink(ResultInterface $result) {
$configuration = $this
->getConfiguration();
$show_count = empty($configuration['show_count']) ? FALSE : (bool) $configuration['show_count'];
$text = $result
->getDisplayValue();
if ($show_count) {
$text .= ' (' . $result
->getCount() . ')';
}
if (is_null($result
->getUrl()) || $result
->getCount() == 0) {
$link = [
'#markup' => $text,
];
}
else {
$link = new Link($text, $result
->getUrl());
$link = $link
->toRenderable();
}
return $link;
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state, FacetInterface $facet) {
$form['show_count'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Show count per Glossary item'),
];
$form['enable_default_theme'] = [
'#type' => 'checkbox',
'#title' => $this
->t('Use default Glossary AZ Theme'),
];
$config = $facet
->getWidget()['config'];
if (!is_null($config)) {
if (isset($config['show_count'])) {
$form['show_count']['#default_value'] = $config['show_count'];
}
if (isset($config['enable_default_theme'])) {
$form['enable_default_theme']['#default_value'] = $config['enable_default_theme'];
}
}
return $form;
}
/**
* {@inheritdoc}
*/
public function getQueryType(array $query_types) {
return $query_types['string'];
}
}
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 | |
GlossaryAZWidget:: |
public | function |
Builds the facet widget for rendering. Overrides WidgetPluginBase:: |
|
GlossaryAZWidget:: |
public | function |
Provides a configuration form for this widget. Overrides WidgetPluginBase:: |
|
GlossaryAZWidget:: |
protected | function |
Builds a renderable array of result items. Overrides WidgetPluginBase:: |
|
GlossaryAZWidget:: |
public | function |
Picks the preferred query type for this widget. Overrides WidgetPluginBase:: |
|
GlossaryAZWidget:: |
protected | function |
Returns the text or link for an item. Overrides WidgetPluginBase:: |
|
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:: |
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 |
Checks is a specific property is required for this widget. Overrides WidgetPluginInterface:: |
2 |
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:: |