横向/银Stripe可过滤

银Stripe模块,允许通过管理界面创建自定义过滤器,并将其分配给对象。

安装: 65

依赖者: 0

建议者: 0

安全: 0

星标: 4

关注者: 4

分支: 3

类型:银Stripe模块

dev-master 2021-05-24 14:03 UTC

This package is auto-updated.

Last update: 2024-09-24 21:31:13 UTC


README

模块,允许创建可映射到数据对象的“过滤器”。

我们的想法是,然后添加将这些过滤器渲染到前端模板和(最终)添加到搜索结果中的功能。

目前,模块只支持后端映射,前端支持即将推出...

作者

本模块由ilateral创建和维护。

联系方式:morven@i-lateral.com

依赖关系

安装

通过下载并将其添加到

[silverstripe-root]/filterable

然后运行:dev/build/?flush=all

或者将以下内容添加到您的项目的composer.json中

使用方法

安装后,您可以通过CMS中的“过滤器”选项卡设置过滤器。

对象映射

要能够将过滤器添加到您的对象中,请将以下内容添加到您的 _config.php 中

Filterable::add("YourObjectName", "RelationName");
  • YourObjectName 是您要添加过滤器的对象名称。
  • RelationName 是添加到 FilterOption 对象的关系名称(例如,"Products")。

控制器上的过滤

要能够从一个控制器中看到过滤对象的列表,您需要将 FilterableController 添加到您的控制器类中。您可以通过以下任一标准方式完成此操作

通过 config.yml

YourController:
  extensions:
    - FilterableController

通过 _config.php

YouController::add_extension("FilterableController");

一旦控制器被扩展,它就可以访问“FilterMenu”和“filterby”操作。

过滤器菜单

可以使用模板变量在模板中加载过滤器菜单

$FilterMenu

这将生成一个包含可用过滤器和选项的菜单

按条件过滤

“filterby”操作根据您通过 Filterable::add() 指定的关系返回对象结果集。

这些结果被渲染到模板中,您可以通过几种方式覆盖此模板。

  1. 在布局目录中创建一个名为 YourClassName_filterby.ss 的模板。这将允许您根据控制器创建不同样式的过滤器。

  2. 在布局目录中创建一个名为 FilterBy.ss 的模板。