unclecheese/bootstrap-tagfield

允许您创建支持多选记录的字段,如标签,符合 Bootstrap 3 标准

安装次数: 12,612

依赖: 0

建议者: 0

安全性: 0

星标: 6

关注者: 4

分支: 6

开放问题: 4

语言:JavaScript

类型:silverstripe 模块

dev-master 2015-01-05 23:39 UTC

This package is auto-updated.

Last update: 2024-08-29 03:26:15 UTC


README

创建一个允许多选的字段,类似于 CheckboxSetField,用于存储在 many_manyhas_many 或原生字段(以逗号分隔的值)中,并提供带有 预取缓存自动完成 搜索。适用于对密集型数据集(如标签)的多选。

此字段仅适用于使用 Bootstrap 框架的前端表单。在 CMS 中无法正确渲染。

截图

screenshot

安装

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');
            })
    )