silverware/model-filters 问题修复 & 功能扩展

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

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

silverware/model-filters

Composer 安装命令:

composer require silverware/model-filters

包简介

SilverWare Model Filters Module.

README 文档

README

Latest Stable Version Latest Unstable Version License

Extends the SilverStripe v4 ModelAdmin to support filtering of versioned data objects.

Contents

Background

Traditionally, versioning in SilverStripe has been the sole domain of SiteTree objects within the CMS, such as the ubiquitous Page class. With the advent of SilverStripe v4, versioning is now used in other areas of the CMS, such as assets.

You can add versioning to your own model classes by using the Versioned extension. ModelAdmin supports versioned data objects out of the box, however filtering these objects by their status is a bit trickier.

Enter silverware/model-filters. After installation of this module, your versioned data objects will have a status dropdown field added to the filter form that appears within ModelAdmin, allowing the user to filter records by their versioning status:

Record Status Filter

You can also add StatusBadges to your $summary_fields to show the versioning status within your model admin grid field:

Record Status Badges

Requirements

Installation

Installation is via Composer:

$ composer require silverware/model-filters

Usage

Once installed, Versioned data objects within ModelAdmin will be automatically detected and a status field will appear within the filter form for each object.

In order to show status badges within the grid field for your versioned objects, simply add StatusBadges to your $summary_fields static, for example:

private static $summary_fields = [
  ...
  'StatusBadges',
  ...
];

Status Field Positioning

By default, the status dropdown field will be added to the end of your search filter fields for each versioned object. To control where the field appears, add one of the following methods to your ModelAdmin subclass:

public function getStatusFieldBefore()
{
    return 'NameOfField';  // will appear before this field
}
public function getStatusFieldAfter()
{
    return 'NameOfField';  // will appear after this field
}

You could also detect the current model class via $this->modelClass and answer a different field name, if required:

public function getStatusFieldAfter()
{
    switch ($this->modelClass) {
        case FirstModel::class:
            return 'AfterThisField';
        case SecondModel::class:
            return 'AfterAnotherField';
    }
}

Status Field Title

By default, the title of the status dropdown field is "Record status". The title is obtained by calling getStatusFieldTitle() on the ModelAdmin subclass. The method added via the extension supports i18n via the usual SilverStripe conventions, however you can also override the method in your ModelAdmin subclass to answer a different field title:

public function getStatusFieldTitle()
{
    return 'New field title';
}

Issues

Please use the GitHub issue tracker for bug reports and feature requests.

Contribution

Your contributions are gladly welcomed to help make this project better. Please see contributing for more information.

Maintainers

Colin Tucker Praxis Interactive
Colin Tucker Praxis Interactive

License

BSD-3-Clause © Praxis Interactive

silverware/model-filters 适用场景与选型建议

silverware/model-filters 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 359 次下载、GitHub Stars 达 3, 最近一次更新时间为 2017 年 05 月 29 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「model」 「filters」 「silverstripe」 「modeladmin」 「silverware」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

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

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

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 359
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 5
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2017-05-29