tractorcow / silverstripe-colorpicker
此软件包最新版本(4.2.0)没有可用的许可证信息。
使用ColorPicker jQuery插件为Silverstripe CMS提供的颜色选择器字段
4.2.0
2023-05-14 23:22 UTC
Requires
- silverstripe/framework: ^4.0 || ^5.0
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
返回蓝色颜色组件CSSColor
以rgba
的形式返回颜色。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 代码。