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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
<?php namespace Elementor;
if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly }
/** * Elementor sub controls stack. * * An abstract class that can be used to divide a large ControlsStack into small parts. * * @abstract */ abstract class Sub_Controls_Stack { /** * @var Controls_Stack */ protected $parent;
/** * Get self ID. * * Retrieve the self ID. * * @access public * @abstract */ abstract public function get_id();
/** * Get self title. * * Retrieve the self title. * * @access public * @abstract */ abstract public function get_title();
/** * Constructor. * * Initializing the base class by setting parent stack. * * @access public * @param Controls_Stack $parent */ public function __construct( $parent ) { $this->parent = $parent; }
/** * Get control ID. * * Retrieve the control ID. Note that the sub controls stack may have a special prefix * to distinguish them from regular controls, and from controls in other * sub stack. * * By default do nothing, and return the original id. * * @access protected * * @param string $control_base_id Control base ID. * * @return string Control ID. */ protected function get_control_id( $control_base_id ) { return $control_base_id; }
/** * Add new control. * * Register a single control to allow the user to set/update data. * * @access public * * @param string $id Control ID. * @param array $args Control arguments. * @param array $options * * @return bool True if added, False otherwise. */ public function add_control( $id, $args, $options = [] ) { return $this->parent->add_control( $this->get_control_id( $id ), $args, $options ); }
/** * Update control. * * Change the value of an existing control. * * @access public * * @param string $id Control ID. * @param array $args Control arguments. Only the new fields you want to update. * @param array $options Optional. Some additional options. */ public function update_control( $id, $args, array $options = [] ) { $this->parent->update_control( $this->get_control_id( $id ), $args, $options ); }
/** * Remove control. * * Unregister an existing control. * * @access public * * @param string $id Control ID. */ public function remove_control( $id ) { $this->parent->remove_control( $this->get_control_id( $id ) ); }
/** * Add new group control. * * Register a set of related controls grouped together as a single unified * control. * * @access public * * @param string $group_name Group control name. * @param array $args Group control arguments. Default is an empty array. * @param array $options * */ public function add_group_control( $group_name, $args, $options = [] ) { $args['name'] = $this->get_control_id( $args['name'] ); $this->parent->add_group_control( $group_name, $args, $options ); }
/** * Add new responsive control. * * Register a set of controls to allow editing based on user screen size. * * @access public * * @param string $id Responsive control ID. * @param array $args Responsive control arguments. * @param array $options */ public function add_responsive_control( $id, $args, $options = [] ) { $this->parent->add_responsive_control( $this->get_control_id( $id ), $args, $options ); }
/** * Update responsive control. * * Change the value of an existing responsive control. * * @access public * * @param string $id Responsive control ID. * @param array $args Responsive control arguments. */ public function update_responsive_control( $id, $args ) { $this->parent->update_responsive_control( $this->get_control_id( $id ), $args ); }
/** * Remove responsive control. * * Unregister an existing responsive control. * * @access public * * @param string $id Responsive control ID. */ public function remove_responsive_control( $id ) { $this->parent->remove_responsive_control( $this->get_control_id( $id ) ); }
/** * Start controls section. * * Used to add a new section of controls to the stack. * * @access public * * @param string $id Section ID. * @param array $args Section arguments. */
public function start_controls_section( $id, $args = [] ) { $this->parent->start_controls_section( $this->get_control_id( $id ), $args ); }
/** * End controls section. * * Used to close an existing open controls section. * * @access public */ public function end_controls_section() { $this->parent->end_controls_section(); }
/** * Start controls tabs. * * Used to add a new set of tabs inside a section. * * @access public * * @param string $id Control ID. */ public function start_controls_tabs( $id ) { $this->parent->start_controls_tabs( $this->get_control_id( $id ) ); }
public function start_controls_tab( $id, $args ) { $this->parent->start_controls_tab( $this->get_control_id( $id ), $args ); }
/** * End controls tabs. * * Used to close an existing open controls tabs. * * @access public */ public function end_controls_tab() { $this->parent->end_controls_tab(); }
/** * End controls tabs. * * Used to close an existing open controls tabs. * * @access public */ public function end_controls_tabs() { $this->parent->end_controls_tabs(); } }
|