tractorcow/silverstripe-colorpicker

此软件包最新版本(4.2.0)没有可用的许可证信息。

使用ColorPicker jQuery插件为Silverstripe CMS提供的颜色选择器字段

安装次数: 193 780

依赖项: 18

建议者: 2

安全: 0

星级: 18

关注者: 4

分支: 23

公开问题: 5

语言:JavaScript

类型:silverstripe-vendormodule

4.2.0 2023-05-14 23:22 UTC

This package is auto-updated.

Last update: 2024-09-15 02:21:59 UTC


README

ColorPicker 模块向 SilverStripe CMS 添加颜色选择器输入字段。它使用 ColorPicker jQuery 插件。

要求

SilverStripe 框架 v4+ 和 v5+

对于与 SilverStripe 3+ 兼容的版本,请考虑使用 3.0 版本

安装

使用 composer 安装

composer require tractorcow/silverstripe-colorpicker ^4@dev

使用方法

以下是如何定义一个 DB 字段为颜色的示例

private static $db = [
    'BgColor' => 'Color'
];

或者,您也可以使用完全限定的类名。最好的方法是在您的 PHP 文件顶部导入该类,如下所示

use TractorCow\Colorpicker\Color;
use TractorCow\Colorpicker\Forms\ColorField;

在您的类中,您可以使用以下方法

private static $db = [
    'BgColor' => Color::class
];

这就完成了...脚手架将负责创建适当的表单字段。

如果您使用 getCMSFields 自己创建字段,可能需要这样做

public function getCMSFields()
{
    $fields = parent::getCMSFields();

    $fields->addFieldToTab(
    	'Root.Main',
    	ColorField::create('BgColor', 'Background color')
    );

    return $fields;
}

在模板中使用 Color 字段类型的技巧

TractorCow\Colorpicker\Color 字段类型提供了一些在模板中很有用的辅助方法。让我们考虑以下场景,您有一个名为 'BgColor' 的字段。最常见的情况如下

<body style="background-color: #$BgColor;">
...

但是还有更多。您还可以使用带有 alpha 的 CSS3 rgba 颜色定义。例如

<body style="background-color: #$BgColor; background-color: $BgColor.CSSColor(0.5);">
...

这将使用 alpha 值为 0.5 的颜色(不支持 rgba 的浏览器,如 IE-8,将回退到第一个背景颜色定义,这就是为什么它还在那里)来着色您的背景。

以下是模板中可用的 Color 方法的完整列表

  • Red 返回红色颜色组件
  • Green 返回绿色颜色组件
  • Blue 返回蓝色颜色组件
  • CSSColorrgba 的形式返回颜色。alpha 值可以用(可选的)参数指定。
  • Luminance 颜色的亮度作为 0-1 范围内的浮点值
  • Blend 将颜色与第二个背景颜色(默认为 #FFFFFF)混合,具有给定的不透明度。 $BGColor.Blend(0.5, '#000000') 将使颜色具有 50% 的不透明度并将其放置在黑色背景之上。
  • AlteredColorHSV 通过给定的 HSV 值修改当前颜色。这些值是偏移量,因此您可以这样做: $BgColor.AlteredColorHSV(0.5, 0, 0),这将返回具有相反色调的颜色。所有参数都是基于百分比的,范围从 0 - 1。因此执行: $BgColor.AlteredColorHSV(0, 0, -0.2) 将导致颜色亮度减少 20%(绝对值,而不是相对值)。
  • ColorCMS 返回用于 CMS 中的可视化表示和颜色 HEX 代码的 HTML 代码。可以在 $summary_fields 的 DataObject 中使用: $summary_fields = [ 'Color.ColorCMS' => 'Color' ]; 这样 GridFields 将始终渲染可见颜色,而不仅仅是 HEX 代码。