Move the Search API filter into an optional submodule
Fixes a 500 error on sites without Search API: the filter plugin used
SearchApiFilterTrait, and a missing trait is an unrecoverable error on core
versions lacking the AttributeClassDiscovery skip (Drupal < 11.4).
Support for Drupal 10.3–11.x and PHP 8.1+ via OOP #[Hook] implementations, with a procedural legacy shim keeping views_data_alter working on 10.3–11.0.
Hardened security: AJAX route restricted to POST, the server sends structured data and the client builds the DOM (no markup assembled from user input), dependent-filter name whitelisting and explicit accessCheck(FALSE) on the reference view query.
Multi-level dependent-filter cascade with cycle detection.
Broader field detection, including entity id columns exposed through a Views relationship.
- Filter options got by the module can be cached or not cached by the entityreference view. It depends on the view settings.
- Not covered by tests completely yet, some bugs may occur, be carefull.
Previously remembered arguments of the view is used now for dynamic filters.
JS code format is improved.
PHP warning is fixed.
PHP code style is improved.
Issue #2545652: Is there a way to use this with commerce product id by glenshewchuck: Recognize commerce product id field.
Issue #2455963 by spacetaxi: Add #maxlength for reference arguments
Allow to use argument default values (when arguments are not provided)
Issue #2690103 by ShaxA: Nullify default value
Issue #2554887 by jojonaloha: Clean entity reference views style output
jQuery selector for form elements is fixed.
The base table for filtering entity is calculated. The list of views to select entities is limited to this base table.
JavaScript code is optimized.
Filters are not auto-updated dynamically if the view is auto-submitted.
The option to hide empty filter automatically is added.
Undefined variable warning is fixed.
Dependent filter functionality is added.
Nested view arguments can be selected more precisely now.
Default value for argument is passed to the nested view if this argument is not provided for the outer view.