-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
CheckboxTag.php
66 lines (61 loc) · 1.55 KB
/
CheckboxTag.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
<?php
declare(strict_types=1);
namespace Ease\Html;
/**
* @author Vítězslav Dvořák <info@vitexsoftware.cz>, Jana Viktorie Borbina <jana@borbina.com>
* Displays checkbox tag.
*
* @author Vítězslav Dvořák <vitex@hippy.cz>
*/
class CheckboxTag extends InputTag
{
/**
* Displays HTML Checkbox.
*
* @param string $name tag name
* @param bool $checked checkbox state
* @param string $value returns checkbox value
* @param array $properties checkbox tag properties
*/
public function __construct(
string $name,
bool $checked = false,
string $value = null,
$properties = []
) {
$properties['type'] = 'checkbox';
if ($checked === true) {
$properties[] = 'checked';
}
if (!is_null($value)) {
$properties['value'] = $value;
}
if (strlen($name)) {
$properties['name'] = $name;
}
$this->setTagProperties($properties);
parent::__construct($name);
}
/**
* Check mark settings.
*
* @param bool $value sets tag parameter to "checked"
*/
public function setValue($value = true)
{
if (boolval($value)) {
$this->setTagProperties(['checked' => 'true']);
} else {
unset($this->tagProperties['checked']);
}
}
/**
* Obtains curent checkbox state
*
* @return boolean $value
*/
public function getValue()
{
return $this->getTagProperty('checked') == 'true';
}
}