iqual/iq_bef_extensions

此包的最新版本(3.0.7)没有可用的许可信息。

更好的暴露过滤器模块的扩展。

安装次数: 8,330

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 3

分支: 2

公开问题: 3

类型:drupal-custom-module

3.0.7 2024-07-16 06:41 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 .

}