heyday/model-admin-filter 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

heyday/model-admin-filter

最新稳定版本:3.0.0

Composer 安装命令:

composer require heyday/model-admin-filter

包简介

Custom filters collection for Silverstripe Model Admin GridField

README 文档

README

Custom filters collection for Silverstripe Model Admin GridField.

Installation

For Silverstripe 5 composer require heyday/model-admin-filter

Quick Usage

Extend model admin:

MyProject\ModelAdmin\MyAdmin:
    extensions:
        - Heyday\ModelAdminFilter\FilterExtension

In your model admin, add this function:

/**
 * {@inheritdoc}
 */
public function getList()
{
    $list = parent::getList();
    $list = $this->getFilteredList($list);

    return $list;
}

getFilteredList will return filtered list from custom filter.

Also in your model admin, add this function to add custom filter fields:

/**
 * List of ModelAdminFilter custom fields
 */
public function extraFilterFields(): array
{
    return [
        [
            'fieldName' => 'Created',
            'fieldType' => 'dateTimeRange',
            'options' => [
                'beginTitle' => 'Create Date Begin',
                'endTitle' => 'Create Date End'
            ]
        ]
    ];
}

The example above will add custom filter of dateTimeRange which is a date time range filter of Created field. This filter will display record where Created dates and times are between selected range.

Common Field Attribute

Available Filter Fields Type

Range filters:

Search by Keyword filters:

dateRange

Filter record by date range of selected date field.

[
    'fieldName' => 'Created',
    'fieldType' => 'dateRange',
    'options' => [
        'beginTitle' => 'Create Date From',
        'endTitle' => 'Create Date To'
    ]
]

Options:

  • beginTitle: custom begin label
  • endTitle: custom end label

dateTimeRange

Filter record by date and time range of selected date field.

[
    'fieldName' => 'Created',
    'fieldType' => 'dateTimeRange',
    'options' => [
        'beginTitle' => 'Create Time From',
        'endTitle' => 'Create Time To'
    ]
]

Options:

  • beginTitle: custom begin label
  • endTitle: custom end label

numericRange

Filter record by numeric range of selected date field.

[
    'fieldName' => 'Weight',
    'fieldType' => 'numericRange',
    'options' => [
        'beginTitle' => 'Weight From',
        'endTitle' => 'Weight To'
    ]
]

Options:

  • beginTitle: custom begin label
  • endTitle: custom end label

Search By Keyword

Filter record by keyword, add this function in model admin:

/**
 * List of fields filtered by keyword
 */
public function keywordSearchFilter(): array
{
    return [
        'fieldsToMatch' => [
            'FirstName' => 'PartialMatch',
            'LastName' => 'PartialMatch',
        ],
        'options' => [
            'title' => 'Search Exactly',
        ],
    ];
}

Fields To Match: '[DBFieldName]' => '[MatchType]'. If MatchType is not PartialMatch, Exact Match will be assumed.

Options:

  • title: custom label

Hide Default Filters

Sometimes we need to hide auto-generated filters, such as $summary_fields in DataObject. Add this function in model admin:

/**
 * Hide default filters of data objects
 */
public function hideDefaultFilters(): bool
{
    return true;
}

统计信息

  • 总下载量: 3.87k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2020-08-14