You are here

public function FacetapiAjaxWidget::execute in Ajax facets 7.3

Implements FacetapiWidget::execute().

Transforms the render array into something that can be themed by theme_item_list().

See also

FacetapiWidgetLinks::setThemeHooks()

FacetapiWidgetLinks::buildListItems()

2 methods override FacetapiAjaxWidget::execute()
FacetapiAjaxWidgetRanges::execute in plugins/facetapi/ajax_widget_ranges.inc
Implements FacetapiWidget::execute().
FacetapiAjaxWidgetSelect::execute in plugins/facetapi/ajax_widget_select.inc
Implements FacetapiWidget::execute().

File

plugins/facetapi/ajax_widget.inc, line 108
Base ajax_facets widget

Class

FacetapiAjaxWidget
Widget that renders facets as a list of clickable links.

Code

public function execute() {
  $element =& $this->build[$this->facet['field alias']];

  // Sets each item's theme hook, builds item list.
  $this
    ->setThemeHooks($element);
  $item_list = [
    '#theme' => 'item_list',
    '#items' => $this
      ->buildListItems($element),
    '#attributes' => $this->build['#attributes'],
  ];

  // We cannot use drupal_html_id to save the same id for each facet.
  $wrapper_id = $this->build['#attributes']['id'] . '-wrapper';
  $element = [
    '#markup' => '<div id="' . $wrapper_id . '">' . $this
      ->getResetLink() . render($item_list) . '</div>',
  ];
  ajax_facets_add_ajax_js($this->facet);
}