横向 / 银Stripe可过滤
银Stripe模块,允许通过管理界面创建自定义过滤器,并将其分配给对象。
Requires
Suggests
- silverstripe/cms: Add full content management support to your site
This package is auto-updated.
Last update: 2024-09-24 21:31:13 UTC
README
模块,允许创建可映射到数据对象的“过滤器”。
我们的想法是,然后添加将这些过滤器渲染到前端模板和(最终)添加到搜索结果中的功能。
目前,模块只支持后端映射,前端支持即将推出...
作者
本模块由ilateral创建和维护。
联系方式:morven@i-lateral.com
依赖关系
- 银Stripe框架3.1.x
- 网格字段扩展
安装
通过下载并将其添加到
[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() 指定的关系返回对象结果集。
这些结果被渲染到模板中,您可以通过几种方式覆盖此模板。
-
在布局目录中创建一个名为 YourClassName_filterby.ss 的模板。这将允许您根据控制器创建不同样式的过滤器。
-
在布局目录中创建一个名为 FilterBy.ss 的模板。