Drupal is a registered trademark of Dries Buytaert
drupal 11.3.7 Update released for Drupal core (11.3.7)! drupal 11.2.11 Update released for Drupal core (11.2.11)! drupal 10.6.7 Update released for Drupal core (10.6.7)! drupal 10.5.9 Update released for Drupal core (10.5.9)! cms 2.1.1 Update released for Drupal core (2.1.1)! drupal 11.3.6 Update released for Drupal core (11.3.6)! drupal 10.6.6 Update released for Drupal core (10.6.6)! cms 2.1.0 Update released for Drupal core (2.1.0)! bootstrap 8.x-3.40 Minor update available for theme bootstrap (8.x-3.40). menu_link_attributes 8.x-1.7 Minor update available for module menu_link_attributes (8.x-1.7). eca 3.1.1 Minor update available for module eca (3.1.1). layout_paragraphs 2.1.3 Minor update available for module layout_paragraphs (2.1.3). ai 1.3.3 Minor update available for module ai (1.3.3). ai 1.2.14 Minor update available for module ai (1.2.14). node_revision_delete 2.0.3 Minor update available for module node_revision_delete (2.0.3). moderated_content_bulk_publish 2.0.52 Minor update available for module moderated_content_bulk_publish (2.0.52). klaro 3.0.10 Minor update available for module klaro (3.0.10). klaro 3.0.9 Minor update available for module klaro (3.0.9). layout_paragraphs 2.1.2 Minor update available for module layout_paragraphs (2.1.2). geofield_map 11.1.8 Minor update available for module geofield_map (11.1.8).

facets_form

355 sites Security covered
View on drupal.org

Exposes facets from a facets source as Drupal Form API elements.

Why?

Even displayed as a dropdown select or checkboxes, the facet widgets are rendered as link lists. Then a JavaScript snippet is responsible to convert them into form elements, such as <select> or <input type="checkbox">.

This has some drawbacks:

  • Even the widgets are displayed as form elements, they are not piped through Drupal Form API. As a consequence, third-party code cannot perform form alterations, and they are not subject to standard Form API elements theming.
  • The current Facets implementation is applying the filter as soon as the element is selected or checked. This is a UX issue, mostly on mobile devices. Also, it doesn't allow scenarios where the user wants to do multiple filter selection before the filters are submitted.

Usage

  • Facets Form provides a block containing a form for each facets source.
  • By default, each block is exposing all eligible facets. But the site builder is able to limit the list of facets to be exposed from the block configuration.
  • The "submit" and "reset" buttons labels can be also be configured on block level.
  • Eligible facets are all facets using widgets plugins that are extending the \Drupal\facets_form\FacetsFormWidgetInterface. Facets Form module ships with two widgets, aiming to provide a Form API alternative to Facets module native widgets:
    • Dropdown (inside form) facets_form_dropdown
    • Checkboxes (inside form) facets_form_checkbox
  • The facets_form_date_range sub-module provides a third, bonus, date range widget.

Extending

Third-party modules can provide additional widgets to be usable inside forms, by implementing the \Drupal\facets_form\FacetsFormWidgetInterface interface.

Activity

Total releases
2
First release
Feb 2025
Latest release
4 months ago
Release cadence
281 days
Stability
100% stable

Releases

Version Type Release date
1.3.0 Stable Nov 19, 2025
1.2.0 Stable Feb 11, 2025