unclecheese / bootstrap-tagfield
允许您创建支持多选记录的字段,如标签,符合 Bootstrap 3 标准
dev-master
2015-01-05 23:39 UTC
Requires
- silverstripe/cms: 3.*
- silverstripe/framework: 3.*
- unclecheese/bootstrap-forms: 1.1.*
This package is auto-updated.
Last update: 2024-08-29 03:26:15 UTC
README
创建一个允许多选的字段,类似于 CheckboxSetField,用于存储在 many_many
、has_many
或原生字段(以逗号分隔的值)中,并提供带有 预取 和 缓存 的 自动完成 搜索。适用于对密集型数据集(如标签)的多选。
此字段仅适用于使用 Bootstrap 框架的前端表单。在 CMS 中无法正确渲染。
截图
安装
composer require unclecheese/bootstrap-tagfield:dev-master
要求
- silverstripe/framework 3.1.*
- unclecheese/bootstrap-forms 1.1.*
用法
一个简单的标签字段,查询所有 Tag
记录的列表。
BootstrapTagField::create('Tags', 'Add some tags below', Tag::get());
此字段不仅适用于标签。当数据集很大时,可以用作复选框的替代品。
BootstrapTagField::create( 'Categories', 'Add categories to your product', ProductCategory::get() ->filter('Available', true) );
可选参数
设置字段作为标签(例如,复选框字段的文本)。默认为 标题
。
BootstrapTagField::create('Tags', 'Add some tags below', Tag::get(), 'Name');
设置字段作为选项的 ID(例如,存储在数据库中的值)。默认为 ID
。
BootstrapTagField::create('Tags', 'Add some tags below', Tag::get(), 'Name', 'Slug');
预取
您可以选择提供 SS_List
以加载到自动完成搜索中,以提供即时结果。一旦对远程进行实际查询,列表将回填任何通过的结果。
预取流行的标签列表
BootstrapTagField::create('Tags', 'Add some tags below', Tag::get()) ->setPrefetch( Tag::get() ->leftJoin('Post_Tags', 'TagID = Tag.ID') ->sort('COUNT(Tag.ID)','DESC') ->limit(30) ->alterDataQuery(function($query) { $query->groupby('Tag.ID'); }) )