-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathcolor.php
90 lines (77 loc) · 2.03 KB
/
color.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?php
/*
* Color Picker Field for Kirby CMS
*
* Copyright: Ian Cox
*
* @license: http://opensource.org/licenses/MIT
*
*/
class ColorField extends InputField{
static public $assets = array(
'js' => array(
'color.js'
),
'css' => array(
'minicolors.css'
)
);
public function __construct() {
$this->type = 'color';
$this->icon = 'paint-brush';
}
public function input() {
$color = new Brick('input');
$color->addClass('input colorpicker');
$color->data('field', 'colorfield');
if($this->value() == "" && $this->default() !== ""):
$value = $this->default();
elseif($this->value() == "" && $this->default() == ""):
$value = "";
else:
$value = $this->value();
endif;
$color->attr(array(
'name' => $this->name(),
'id' => $this->id(),
'disabled' => $this->disabled(),
'readonly' => $this->readonly(),
'type' => "text",
'data-defaultvalue' => $value,
'value' => $value
));
// implement OPACITY option
// if opacity is used, we must use RGB format
if($this->opacity() == true):
$color->attr(array(
'data-format' => 'rgb',
'data-opacity' => '1'
));
else:
$color->attr(array(
'data-format' => 'hex'
));
endif;
// implement CONTROL option
if($this->control() == "brightness" || $this->control() == "saturation" || $this->control() == "wheel"):
$color->attr(array(
'data-control' => $this->control()
));
else:
$color->attr(array(
'data-control' => 'hue'
));
endif;
// implement SWATCHES option
if($this->swatches() && $this->swatches() !== ""){
$color->attr(array(
'data-swatches' => implode('|', $this->swatches())
));
}
$color->append($this->option('', '', $this->value() == ''));
$wrapper = new Brick('div');
$wrapper->addClass('input color-wrapper');
$wrapper->append($color);
return $color;
}
}