PluginProbe
Borderless – Addons and Templates for Elementor / 1.2.5
Borderless – Addons and Templates for Elementor v1.2.5
trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.2 1.2.3 All 78 releases
borderless / modules / elementor / widgets / progress-bar.php

progress-bar.php in Borderless – Addons and Templates for Elementor 1.2.5, at modules/elementor/widgets/progress-bar.php

407 lines 11.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Borderless\Widgets;
4
5 if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
6
7 use \Elementor\Controls_Manager;
8 use \Elementor\Group_Control_Background;
9 use \Elementor\Group_Control_Box_Shadow;
10 use \Elementor\Group_Control_Typography;
11 use \Elementor\Core\Schemes\Typography;
12 use \Elementor\Widget_Base;
13
14 class Progress_Bar extends Widget_Base {
15
16 public function get_name() {
17 return 'borderless-elementor-progress-bar';
18 }
19
20 public function get_title() {
21 return esc_html__( 'Progress Bar', 'borderless');
22 }
23
24 public function get_icon() {
25 return 'fa fa-newspaper';
26 }
27
28 public function get_categories() {
29 return [ 'borderless' ];
30 }
31
32 public function get_keywords()
33 {
34 return [
35 'progress bar',
36 'bar',
37 'borderless',
38 'borderless progress bar',
39 'borderless bar'
40 ];
41 }
42
43 public function get_custom_help_url()
44 {
45 return 'https://wpborderless.com/';
46 }
47
48 protected function _register_controls() {
49
50
51 /*-----------------------------------------------------------------------------------*/
52 /* *. Layout
53 /*-----------------------------------------------------------------------------------*/
54
55 $this->start_controls_section(
56 'borderless_elementor_section_progress_bar_layout',
57 [
58 'label' => esc_html__( 'Layout', 'borderless' ),
59 'tab' => Controls_Manager::TAB_CONTENT,
60 ]
61 );
62
63 $this->add_control(
64 'borderless_elementor_progress_bar_title',
65 [
66 'label' => esc_html__( 'Title', 'borderless'),
67 'type' => Controls_Manager::TEXT,
68 'dynamic' => [
69 'active' => true,
70 ],
71 ]
72 );
73
74 $this->add_control(
75 'borderless_elementor_progress_bar_counter_value',
76 [
77 'label' => esc_html__( 'Counter Value', 'borderless'),
78 'type' => Controls_Manager::SLIDER,
79 'size_units' => ['%'],
80 'range' => [
81 '%' => [
82 'min' => 1,
83 'max' => 100,
84 ],
85 ],
86 'default' => [
87 'unit' => '%',
88 'size' => 50,
89 ],
90 'separator' => 'before',
91 ]
92 );
93
94 $this->add_control(
95 'borderless_elementor_progress_bar_animation_duration',
96 [
97 'label' => __('Animation Duration', 'borderless'),
98 'type' => Controls_Manager::SLIDER,
99 'size_units' => ['px'],
100 'range' => [
101 'px' => [
102 'min' => 1000,
103 'max' => 10000,
104 'step' => 100,
105 ],
106 ],
107 'default' => [
108 'unit' => 'px',
109 'size' => 1500,
110 ],
111 'separator' => 'before',
112 ]
113 );
114
115 $this->end_controls_section();
116
117
118 /*-----------------------------------------------------------------------------------*/
119 /* *. Layout - Style
120 /*-----------------------------------------------------------------------------------*/
121
122 $this->start_controls_section(
123 'borderless_elementor_section_progress_bar_styles_general',
124 [
125 'label' => esc_html__( 'General', 'borderless'),
126 'tab' => Controls_Manager::TAB_STYLE
127 ]
128 );
129
130 $this->add_control(
131 'borderless_elementor_progress_bar_alignment',
132 [
133 'label' => __('Alignment', 'borderless'),
134 'type' => \Elementor\Controls_Manager::CHOOSE,
135 'options' => [
136 'borderless-elementor-progress-bar-alignment-left' => [
137 'title' => __('Left', 'borderless'),
138 'icon' => 'fa fa-align-left',
139 ],
140 'borderless-elementor-progress-bar-alignment-center' => [
141 'title' => __('Center', 'borderless'),
142 'icon' => 'fa fa-align-center',
143 ],
144 'borderless-elementor-progress-bar-alignment-right' => [
145 'title' => __('Right', 'borderless'),
146 'icon' => 'fa fa-align-right',
147 ],
148 ],
149 'default' => 'borderless-elementor-progress-bar-alignment-center',
150 ]
151 );
152
153 $this->add_control(
154 'borderless_elementor_progress_bar_size',
155 [
156 'label' => __('Size', 'borderless'),
157 'type' => Controls_Manager::SLIDER,
158 'size_units' => ['%'],
159 'range' => [
160 '%' => [
161 'min' => 1,
162 'max' => 100,
163 'step' => 1,
164 ],
165 ],
166 'default' => [
167 'unit' => '%',
168 'size' => 100,
169 ],
170 'selectors' => [
171 '{{WRAPPER}} .borderless-elementor-progress-bar' => 'width: {{SIZE}}{{UNIT}};',
172 ],
173 'separator' => 'before',
174 ]
175 );
176
177 $this->add_control(
178 'borderless_elementor_progress_bar_stroke_width',
179 [
180 'label' => __('Stroke Width', 'borderless'),
181 'type' => Controls_Manager::SLIDER,
182 'size_units' => ['px'],
183 'range' => [
184 'px' => [
185 'min' => 0,
186 'max' => 100,
187 'step' => 1,
188 ],
189 ],
190 'default' => [
191 'unit' => 'px',
192 'size' => 2,
193 ],
194 'separator' => 'before',
195 ]
196 );
197
198 $this->add_control(
199 'borderless_elementor_progress_bar_stroke_color_style',
200 [
201 'label' => __( 'Stroke Color Style', 'borderless' ),
202 'type' => \Elementor\Controls_Manager::SELECT,
203 'default' => 'borderless-elementor-progress-bar-stroke-solid-color',
204 'options' => [
205 'borderless-elementor-progress-bar-stroke-solid-color' => __( 'Solid', 'borderless' ),
206 'borderless-elementor-progress-bar-stroke-gradient-color' => __( 'Gradient', 'borderless' ),
207 ],
208 ]
209 );
210
211 $this->add_control(
212 'borderless_elementor_progress_bar_stroke_color',
213 [
214 'label' => __('Stroke Color', 'borderless'),
215 'type' => Controls_Manager::COLOR,
216 'default' => '#000',
217 'condition' => [
218 'borderless_elementor_progress_bar_stroke_color_style' => 'borderless-elementor-progress-bar-stroke-solid-color',
219 ],
220 ]
221 );
222
223 $this->add_control(
224 'borderless_elementor_progress_bar_stroke_color_from',
225 [
226 'label' => __('Stroke Color From', 'borderless'),
227 'type' => Controls_Manager::COLOR,
228 'default' => '#000',
229 'condition' => [
230 'borderless_elementor_progress_bar_stroke_color_style' => 'borderless-elementor-progress-bar-stroke-gradient-color',
231 ],
232 ]
233 );
234
235 $this->add_control(
236 'borderless_elementor_progress_bar_stroke_color_to',
237 [
238 'label' => __('Stroke Color To', 'borderless'),
239 'type' => Controls_Manager::COLOR,
240 'default' => '#000',
241 'condition' => [
242 'borderless_elementor_progress_bar_stroke_color_style' => 'borderless-elementor-progress-bar-stroke-gradient-color',
243 ],
244 ]
245 );
246
247 $this->add_control(
248 'borderless_elementor_progress_bar_trail_width',
249 [
250 'label' => __('Trail Width', 'borderless'),
251 'type' => Controls_Manager::SLIDER,
252 'size_units' => ['px'],
253 'range' => [
254 'px' => [
255 'min' => 0,
256 'max' => 100,
257 'step' => 1,
258 ],
259 ],
260 'default' => [
261 'unit' => 'px',
262 'size' => 2,
263 ],
264 'separator' => 'before',
265 ]
266 );
267
268 $this->add_control(
269 'borderless_elementor_progress_bar_trail_color',
270 [
271 'label' => __('Trail Color', 'borderless'),
272 'type' => Controls_Manager::COLOR,
273 'default' => '#eee',
274 ]
275 );
276
277 $this->add_control(
278 'borderless_elementor_progress_bar_background_color',
279 [
280 'label' => __('Background Color', 'borderless'),
281 'type' => Controls_Manager::COLOR,
282 'default' => '#fff',
283 'selectors' => [
284 '{{WRAPPER}} .borderless-elementor-progress-bar' => 'background-color: {{VALUE}}',
285 ],
286 'separator' => 'before',
287 ]
288 );
289
290 $this->add_group_control(
291 Group_Control_Box_Shadow::get_type(),
292 [
293 'name' => 'borderless_elementor_progress_bar_box_shadow',
294 'label' => __('Box Shadow', 'borderless'),
295 'selector' => '{{WRAPPER}} .borderless-elementor-progress-bar',
296 'separator' => 'before',
297 ]
298 );
299
300 $this->end_controls_section();
301
302 /*-----------------------------------------------------------------------------------*/
303 /* *. Typography - Style
304 /*-----------------------------------------------------------------------------------*/
305
306 $this->start_controls_section(
307 'borderless_section_circular_progress_bar_typography',
308 [
309 'label' => __('Typography', 'borderless'),
310 'tab' => Controls_Manager::TAB_STYLE,
311 ]
312 );
313
314 $this->add_group_control(
315 Group_Control_Typography::get_type(),
316 [
317 'name' => 'borderless_elementor_progress_bar_title_typography',
318 'label' => __('Title', 'borderless'),
319 'scheme' => Typography::TYPOGRAPHY_1,
320 'selector' => '{{WRAPPER}} .borderless-elementor-progress-bar .progressbar-text div .borderless-elementor-progress-bar-title',
321 ]
322 );
323
324 $this->add_control(
325 'borderless_elementor_progress_bar_title_color',
326 [
327 'label' => __('Title Color', 'borderless'),
328 'type' => Controls_Manager::COLOR,
329 'default' => '',
330 'selectors' => [
331 '{{WRAPPER}} .borderless-elementor-progress-bar .progressbar-text div .borderless-elementor-progress-bar-title' => 'color: {{VALUE}}',
332 ],
333 'separator' => 'after',
334 ]
335 );
336
337 $this->add_group_control(
338 Group_Control_Typography::get_type(),
339 [
340 'name' => 'borderless_elementor_progress_bar_counter_typography',
341 'label' => __('Counter', 'borderless'),
342 'scheme' => Typography::TYPOGRAPHY_1,
343 'selector' => '{{WRAPPER}} .borderless-elementor-progress-bar .progressbar-text div .borderless-elementor-progress-bar-counter-value',
344 ]
345 );
346
347 $this->add_control(
348 'borderless_elementor_progress_bar_counter_color',
349 [
350 'label' => __('Counter Color', 'borderless'),
351 'type' => Controls_Manager::COLOR,
352 'default' => '',
353 'separator' => 'after',
354 ]
355 );
356
357 $this->add_group_control(
358 Group_Control_Typography::get_type(),
359 [
360 'name' => 'borderless_elementor_progress_bar_postfix_typography',
361 'label' => __('Postfix', 'borderless'),
362 'scheme' => Typography::TYPOGRAPHY_1,
363 'selector' => '{{WRAPPER}} .borderless-elementor-progress-bar .progressbar-text div .borderless-elementor-progress-bar-counter-postfix',
364 ]
365 );
366
367 $this->add_control(
368 'borderless_elementor_progress_bar_postfix_color',
369 [
370 'label' => __('Postfix Color', 'borderless'),
371 'type' => Controls_Manager::COLOR,
372 'default' => '',
373 'selectors' => [
374 '{{WRAPPER}} .borderless-elementor-progress-bar .progressbar-text div .borderless-elementor-progress-bar-counter-postfix' => 'color: {{VALUE}}',
375 ],
376 ]
377 );
378
379 $this->end_controls_section();
380
381 }
382
383 /*-----------------------------------------------------------------------------------*/
384 /* *. Render
385 /*-----------------------------------------------------------------------------------*/
386
387 protected function render() {
388 $settings = $this->get_settings_for_display();
389
390 if ($settings['borderless_elementor_progress_bar_stroke_color_style'] == 'borderless-elementor-progress-bar-stroke-solid-color' ) {
391 $borderless_elementor_progress_bar_stroke_color_style = 'stroke_color_mode="solid" stroke_color="'.$settings['borderless_elementor_progress_bar_stroke_color'].'"';
392
393 } else {
394 $borderless_elementor_progress_bar_stroke_color_style = 'stroke_color_mode="gradient" stroke_color="'.$settings['borderless_elementor_progress_bar_stroke_color'].'" stroke_color_from="'.$settings['borderless_elementor_progress_bar_stroke_color_from'].'" stroke_color_to="'.$settings['borderless_elementor_progress_bar_stroke_color_to'].'"';
395 }
396
397 echo'<div class="borderless-elementor-progress-bar-widget '.$settings['borderless_elementor_progress_bar_alignment'].'"><div class="borderless-elementor-progress-bar '.$settings['borderless_elementor_progress_bar_shape'].'" title="'.$settings['borderless_elementor_progress_bar_title'].'" counter_value="'.$settings['borderless_elementor_progress_bar_counter_value']['size'].'" '.$borderless_elementor_progress_bar_stroke_color_style.' trail_color="'.$settings['borderless_elementor_progress_bar_trail_color'].'" counter_color="'.$settings['borderless_elementor_progress_bar_counter_color'].'" stroke_width="'.$settings['borderless_elementor_progress_bar_stroke_width']['size'].'" trail_width="'.$settings['borderless_elementor_progress_bar_trail_width']['size'].'" animation_duration="'.$settings['borderless_elementor_progress_bar_animation_duration']['size'].'">
398 </div></div>';
399
400 }
401
402 protected function _content_template() {
403
404 }
405
406
407 }