iqual / iq_bef_extensions
此包的最新版本(3.0.7)没有可用的许可信息。
更好的暴露过滤器模块的扩展。
3.0.7
2024-07-16 06:41 UTC
Requires
- php: ^8.1
- drupal/better_exposed_filters: 6.0.3
- drupal/core: ^9.5 || ^10
- drupal/vefl: 3.1
- drupal/views_ajax_history: 1.7
- 3.x-dev
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.x-dev
- 2.2.1
- 2.2
- 2.1
- v2.0.1
- v2.0
- v0.1-alpha
- dev-issue/US-1717_provide-no-loading-entities-query-plugin
- dev-issue/DUP-14_update_patches_composer_2
- dev-issue/US-1717_provide-no-loading-entities-query-plugin-2.x
- dev-misc/view_table_filter
- dev-8.x-1.x
This package is auto-updated.
Last update: 2024-08-27 12:02:47 UTC
README
BEF(更好的暴露过滤器)模块的扩展。
背景
尽管BEF模块为暴露过滤器提供了显著的增强,但仍有一些缺失的功能,例如范围滑块等。
本模块包含
过滤器插件
- 滑块:基于noUiSlider JS库的范围过滤器。包含显示过滤器结果分布的直方图。
- 高级选择:基于chosen JS库的选择下拉菜单。过滤器扩展的设置可以在视图显示的高级设置标签页中找到,在暴露过滤器设置部分
- 单选:单选开关小部件实现
基本的过滤器表单布局 使用布局,将暴露过滤器表单的样式更改为“更好的暴露过滤器(带有布局)”并选择其中一个布局
与views_ajax_history集成:此模块捆绑了drupal/views_ajax_history和适当的补丁,允许在URL中包含过滤器值的GET视图。
设置与安装
在Drupal 9和10上安装
按常规安装模块
composer require iqual/iq_bef_extensions
drush en iq_bef_extensions
配置
常规选项
- 如果未使用则删除过滤器:如果启用此选项,如果没有效果,则将隐藏过滤器。这意味着:结果对象中没有任何对应字段的值。
滑块选项(只有非自解释的选项)
- 范围最小值:滑块范围的最低值。留空以自动计算。
- 范围最大值:滑块范围的最高值。留空以自动计算。
- 步长:滑块的最小滑动距离。留空以自动计算,基于直方图桶的数量。
- 工具提示因子:工具提示与有效过滤器值之间的系数。如果您希望工具提示显示与底层数据模型不同的单位,请使用此系数。示例:数值字段配置为以毫米存储值。如果滑块应显示厘米,则工具提示因子可以简单地设置为10。
- 工具提示缩放:小数位数。
高级选择选项
- 删除未使用的项目:隐藏所有不返回空过滤器结果的选项。
高级用法/扩展行为
与JS交互
iq_bef_extensions前端使用jQuery构建,基于其事件系统。触发三个事件,可以用来作为更改/扩展基本功能的入口点
- iq-bef-extionsions-before-init
- iq-bef-extionsions-init
- iq-bef-extionsions-after-init
可以通过设置jQuery事件监听器来进行交互
$(document).on("iq-bef-extionsions-before-init", function(){
// Do stuff here...
});
创建新的过滤器插件
iq_bef_extensions过滤器实现为BetterExposedFiltersFilterWidgets
。使用Symfony的注解系统创建具有自己功能的新过滤器插件。要访问iq_bef_extensions的基本功能,请确保您的自定义插件继承自Drupal\iq_bef_extensions\Plugin\better_exposed_filters\filter\DefaultWidget
类。
示例代码
<?php
namespace Drupal\custom_module\Plugin\better_exposed_filters\filter;
use Drupal\iq_bef_extensions\Plugin\better_exposed_filters\filter\DefaultWidget;
/**
* Select implementation using the chosen JS library.
*
* @BetterExposedFiltersFilterWidget(
* id = "custom_filter_id",
* label = @Translation("Custom Filter name"),
* )
*/
class CustomFilterPlugin extends DefaultWidget {
... Youre custom methods .
}