定制 heyday/model-admin-filter 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

heyday/model-admin-filter

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

heyday/model-admin-filter 适用场景与选型建议

heyday/model-admin-filter 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.15k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 08 月 14 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 heyday/model-admin-filter 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 heyday/model-admin-filter 我们能提供哪些服务?
定制开发 / 二次开发

基于 heyday/model-admin-filter 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

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

GitHub 信息

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

其他信息

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