conan/silverstripe-data-object-utils 问题修复 & 功能扩展

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

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

conan/silverstripe-data-object-utils

Composer 安装命令:

composer require conan/silverstripe-data-object-utils

包简介

Useful constants, CMS field helper functions and a permission extension for Silverstripe CMS ^4.

README 文档

README

Build Status codecov

Description

Useful constants, CMS field helper functions and a permission extension for Silverstripe CMS ^4.

Keep your SilverStripe code DRY!

Constants

  • Data types
  • Search filter modifiers
  • Data object fields
  • Site tree fields
  • Group fields

CMS fields util functions

  • Translate title and description on form fields using the same naming convention

Test/Validation utils

  • Generate error message strings

Data object permission extension

Apply and configure:

  • canView
  • canEdit
  • canCreate
  • canDelete

permission checks to data objects through an extension.

Example usages

Apply permission checks to data objects

First set the allowed group codes in a config file.

Conan\DataObjectUtils\DataObjectGroupPermissionExtension:
  can_view_group_codes:
    - 'administrators'
    - 'can_view_group_codes'
  can_edit_group_codes:
    - 'administrators'
    - 'can_edit_group_codes'
  can_create_group_codes:
    - 'administrators'
    - 'can_create_group_codes'
  can_delete_group_codes:
    - 'administrators'
    - 'can_delete_group_codes'

Then apply the extension to data objects.

namespace The\Namespace;

use Conan\DataObjectUtils\DataObjectGroupPermissionExtension;
use SilverStripe\ORM\DataObject;

class MyClass extends DataObject 
{
    private static $extensions = [
        DataObjectGroupPermissionExtension::class,
    ];
}

Translate CMS fields

namespace The\Namespace;

use Conan\DataObjectUtils\DBConstants;
use Conan\DataObjectUtils\CMSFieldUtils;
use SilverStripe\ORM\DataObject;

class MyClass extends DataObject 
{
    const MY_STRING_FIELD = 'MyStringField';
    const MY_INT_FIELD = 'MyIntField';

    private static $db = [
        self::MY_STRING_FIELD => DBConstants::VARCHAR,    
        self::MY_INT_FIELD => DBConstants::INT,    
    ];

    public function getCMSFields() 
    {
        $fields = parent::getCMSFields();
        $myStringField = $fields->dataFieldByName(self::MY_STRING_FIELD);
        CMSFieldUtils::setTitle($myStringField, 'My title');
        CMSFieldUtils::setDescription($myStringField, 'My description');
    
        // Or for both title and description you can use this
        // CMSFieldUtils::setTitleAndDescription($myStringField, 'My title', 'My description');
    }
}

The field can then be translated like this:

en:
  The\Namespace\MyClass:
    MyStringField.Title: 'Translated title'
    MyStringField.Description: 'Translated description'

By default the namespaced class name is used, but it is possible to pass a custom value as the caller class. e.g. CMSFieldUtils::setTitle($myStringField, 'My title', 'MyModule'); and then translate it like this:

en:
  MyModule:
    MyStringField.Title: 'Translated title'
    MyStringField.Description: 'Translated description'

Versioning

This library uses semantic versioning.

License

silverstripe-data-object-utils is released under the MIT license. Please see the LICENSE file for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-11-17

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固