RangeSliderWidget.php in Facets 8
File
modules/facets_range_widget/src/Plugin/facets/widget/RangeSliderWidget.php
View source
<?php
namespace Drupal\facets_range_widget\Plugin\facets\widget;
use Drupal\facets\FacetInterface;
class RangeSliderWidget extends SliderWidget {
public function build(FacetInterface $facet) {
$build = parent::build($facet);
if (empty($facet
->getResults())) {
return $build;
}
$active = $facet
->getActiveItems();
$facet_settings =& $build['#attached']['drupalSettings']['facets']['sliders'][$facet
->id()];
$facet_settings['range'] = TRUE;
$facet_settings['url'] = reset($facet_settings['urls']);
unset($facet_settings['value']);
unset($facet_settings['urls']);
$min = $facet_settings['min'];
$max = $facet_settings['max'];
$facet_settings['values'] = [
isset($active[0][0]) ? (double) $active[0][0] : $min,
isset($active[0][1]) ? (double) $active[0][1] : $max,
];
return $build;
}
public function isPropertyRequired($name, $type) {
if ($name === 'range_slider' && $type === 'processors') {
return TRUE;
}
if ($name === 'show_only_one_result' && $type === 'settings') {
return TRUE;
}
return FALSE;
}
public function getQueryType() {
return 'range';
}
}