-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCodeEditor.php
76 lines (61 loc) · 1.55 KB
/
CodeEditor.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
<?php
/**
* @package ImpressPages
*/
namespace Plugin\Composer;
class CodeEditor extends \Ip\Form\Field
{
protected $mode;
protected $theme;
/**
* Constructor
*
* @param array $options
*/
public function __construct($options = array())
{
parent::__construct($options);
if (!empty($options['mode'])) {
$this->setMode($options['mode']);
}
if (!empty($options['theme'])) {
$this->setTheme($options['theme']);
}
}
public function render($doctype, $environment)
{
return '
<textarea ' . $this->getAttributesStr($doctype) . ' class="form-control ' . implode(
' ',
$this->getClasses()
) . '" name="' . escattr($this->getName()) . '"'
. $this->getMode() . ' ' . $this->getTheme() . ' ' . $this->getValidationAttributesStr(
$doctype
) . ' >' . escTextarea($this->getValue()) .
'</textarea>';
}
public function getTypeClass()
{
return 'codeeditor';
}
public function setMode($mode)
{
$this->mode = $mode;
}
public function getMode()
{
if ($this->mode) {
return ' data-mode="' . $this->mode . '"';
}
}
public function setTheme($theme)
{
$this->theme = $theme;
}
public function getTheme()
{
if ($this->theme) {
return ' data-theme="' . $this->theme . '"';
}
}
}