1 <?php
2
3 4 5
6 class rex_form_control_element extends rex_form_element
7 {
8 private $saveElement;
9 private $applyElement;
10 private $deleteElement;
11 private $resetElement;
12 private $abortElement;
13
14 public function __construct(rex_form_base $table, rex_form_element $saveElement = null, rex_form_element $applyElement = null, rex_form_element $deleteElement = null, rex_form_element $resetElement = null, rex_form_element $abortElement = null)
15 {
16 parent::__construct('', $table);
17
18 $this->saveElement = $saveElement;
19 $this->applyElement = $applyElement;
20 $this->deleteElement = $deleteElement;
21 $this->resetElement = $resetElement;
22 $this->abortElement = $abortElement;
23 }
24
25 protected function _get()
26 {
27 $s = '';
28 $elements = [];
29
30 if ($this->saveElement) {
31 if (!$this->saveElement->hasAttribute('class')) {
32 $this->saveElement->setAttribute('class', 'btn btn-save rex-form-aligned');
33 }
34
35 $e = [];
36 $e['class'] = $this->saveElement->formatClass();
37 $e['field'] = $this->saveElement->formatElement();
38 $elements[] = $e;
39 }
40
41 if ($this->applyElement) {
42 if (!$this->applyElement->hasAttribute('class')) {
43 $this->applyElement->setAttribute('class', 'btn btn-apply');
44 }
45
46 $e = [];
47 $e['class'] = $this->applyElement->formatClass();
48 $e['field'] = $this->applyElement->formatElement();
49 $elements[] = $e;
50 }
51
52 if ($this->abortElement) {
53 if (!$this->abortElement->hasAttribute('class')) {
54 $this->abortElement->setAttribute('class', 'btn btn-abort');
55 }
56
57 $e = [];
58 $e['class'] = $this->abortElement->formatClass();
59 $e['field'] = $this->abortElement->formatElement();
60 $elements[] = $e;
61 }
62
63 if ($this->deleteElement) {
64 if (!$this->deleteElement->hasAttribute('class')) {
65 $this->deleteElement->setAttribute('class', 'btn btn-delete');
66 }
67
68 if (!$this->deleteElement->hasAttribute('onclick')) {
69 $this->deleteElement->setAttribute('data-confirm', rex_i18n::msg('form_delete') . '?');
70 }
71
72 $e = [];
73 $e['class'] = $this->deleteElement->formatClass();
74 $e['field'] = $this->deleteElement->formatElement();
75 $elements[] = $e;
76 }
77
78 if ($this->resetElement) {
79 if (!$this->resetElement->hasAttribute('class')) {
80 $this->resetElement->setAttribute('class', 'btn btn-reset');
81 }
82
83 if (!$this->resetElement->hasAttribute('onclick')) {
84 $this->resetElement->setAttribute('data-confirm', rex_i18n::msg('form_reset') . '?');
85 }
86
87 $e = [];
88 $e['class'] = $this->resetElement->formatClass();
89 $e['field'] = $this->resetElement->formatElement();
90 $elements[] = $e;
91 }
92
93 if (count($elements) > 0) {
94 $fragment = new rex_fragment();
95 $fragment->setVar('elements', $elements, false);
96 $s = $fragment->parse('core/form/submit.php');
97 }
98
99 return $s;
100 }
101
102 public function submitted($element)
103 {
104 return is_object($element) && rex_post($element->getAttribute('name'), 'string') != '';
105 }
106
107 public function saved()
108 {
109 return $this->submitted($this->saveElement);
110 }
111
112 public function applied()
113 {
114 return $this->submitted($this->applyElement);
115 }
116
117 public function deleted()
118 {
119 return $this->submitted($this->deleteElement);
120 }
121
122 public function resetted()
123 {
124 return $this->submitted($this->resetElement);
125 }
126
127 public function aborted()
128 {
129 return $this->submitted($this->abortElement);
130 }
131 }
132