PluginProbe ʕ •ᴥ•ʔ
Shortcodes and extra features for Phlox theme / 2.15.2
Shortcodes and extra features for Phlox theme v2.15.2
2.17.21 2.17.20 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.6 1.0.9 1.1.0 1.3.0 1.3.1 1.3.10 1.3.14 1.3.2 1.3.3 1.3.6 1.4.0 1.4.1 1.4.2 1.5.0 1.5.2 1.6.0 1.6.2 1.6.4 1.7.0 1.7.2 2.10.0 2.10.1 2.10.3 2.10.5 2.10.7 2.10.8 2.10.9 2.11.0 2.11.1 2.11.2 2.12.0 2.14.0 2.15.0 2.15.2 2.15.4 2.15.5 2.15.6 2.15.7 2.15.8 2.15.9 2.16.0 2.16.1 2.16.2 2.16.3 2.16.4 2.17.0 2.17.1 2.17.12 2.17.13 2.17.14 2.17.15 2.17.16 2.17.2 2.17.3 2.17.4 2.17.5 2.17.6 2.17.8 2.17.9 2.4.12 2.4.13 2.4.14 2.4.16 2.4.18 2.4.19 2.4.9 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.14 2.5.15 2.5.16 2.5.17 2.5.19 2.5.2 2.5.20 2.5.3 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.10 2.6.12 2.6.13 2.6.14 2.6.15 2.6.16 2.6.17 2.6.19 2.6.2 2.6.20 2.6.4 2.6.5 2.6.7 2.7.0 2.7.1 2.7.10 2.7.11 2.7.12 2.7.13 2.7.14 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.8.6 2.8.7 2.8.9 2.9.0 2.9.12 2.9.14 2.9.15 2.9.16 2.9.17 2.9.18 2.9.19 2.9.2 2.9.20 2.9.21 2.9.22 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8
auxin-elements / includes / elementor / widgets / circle-chart.php
auxin-elements / includes / elementor / widgets Last commit date
theme-elements 2 years ago accordion.php 4 years ago audio.php 4 years ago before-after.php 3 years ago button.php 4 years ago carousel-navigation.php 4 years ago circle-chart.php 3 years ago contact-box.php 4 years ago contact-form.php 4 years ago custom-list.php 4 years ago divider.php 4 years ago gallery.php 2 years ago gmap.php 4 years ago heading-modern.php 3 years ago icon.php 3 years ago image.php 4 years ago mailchimp.php 4 years ago modern-button.php 4 years ago products-grid.php 3 years ago quote.php 4 years ago recent-comments.php 3 years ago recent-posts-grid-carousel.php 4 years ago recent-posts-land-style.php 4 years ago recent-posts-masonry.php 4 years ago recent-posts-tiles-carousel.php 4 years ago recent-posts-tiles.php 4 years ago recent-posts-timeline.php 4 years ago recent-products.php 4 years ago responsive-table.php 3 years ago search.php 4 years ago staff.php 4 years ago svg.php 3 years ago tabs.php 3 years ago testimonial.php 4 years ago text.php 4 years ago touch-slider.php 4 years ago video.php 4 years ago
circle-chart.php
385 lines
1 <?php
2 namespace Auxin\Plugin\CoreElements\Elementor\Elements;
3
4 use Elementor\Widget_Base;
5 use Elementor\Controls_Manager;
6 use Elementor\Group_Control_Typography;
7 use Elementor\Core\Schemes\Typography;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly.
11 }
12
13 /**
14 * Elementor 'CircleChart' widget.
15 *
16 * Elementor widget that displays an 'CircleChart' with lightbox.
17 *
18 * @since 1.0.0
19 */
20 class CircleChart extends Widget_Base {
21
22 /**
23 * Get widget name.
24 *
25 * Retrieve 'CircleChart' widget name.
26 *
27 * @since 1.0.0
28 * @access public
29 *
30 * @return string Widget name.
31 */
32 public function get_name() {
33 return 'aux_circle_chart';
34 }
35
36 /**
37 * Get widget title.
38 *
39 * Retrieve 'CircleChart' widget title.
40 *
41 * @since 1.0.0
42 * @access public
43 *
44 * @return string Widget title.
45 */
46 public function get_title() {
47 return __('Circle Chart', 'auxin-elements' );
48 }
49
50 /**
51 * Get widget icon.
52 *
53 * Retrieve 'CircleChart' widget icon.
54 *
55 * @since 1.0.0
56 * @access public
57 *
58 * @return string Widget icon.
59 */
60 public function get_icon() {
61 return 'eicon-counter-circle auxin-badge';
62 }
63
64 /**
65 * Get widget categories.
66 *
67 * Retrieve 'CircleChart' widget icon.
68 *
69 * @since 1.0.0
70 * @access public
71 *
72 * @return string Widget icon.
73 */
74 public function get_categories() {
75 return array( 'auxin-core' );
76 }
77
78 /**
79 * Register 'CircleChart' widget controls.
80 *
81 * Adds different input fields to allow the user to change and customize the widget settings.
82 *
83 * @since 1.0.0
84 * @access protected
85 */
86 protected function register_controls() {
87
88 /*-----------------------------------------------------------------------------------*/
89 /* Contact Info section
90 /*-----------------------------------------------------------------------------------*/
91
92 $this->start_controls_section(
93 'chart_info_section',
94 array(
95 'label' => __('Chart Info', 'auxin-elements' )
96 )
97 );
98
99 $this->add_control(
100 'percentage',
101 array(
102 'label' => __('Percentage','auxin-elements' ),
103 'type' => Controls_Manager::SLIDER,
104 'size_units' => array('%'),
105 'range' => array(
106 '%' => array(
107 'min' => 1,
108 'max' => 100,
109 'step' => 1
110 ),
111 ),
112 'selectors' => array(
113 '{{WRAPPER}} .aux-circle-chart-wrapper' => '--aux-chart-percentage:{{SIZE}};'
114 ),
115 'default' => array(
116 'size' => 20,
117 ),
118 )
119 );
120
121 $this->add_control(
122 'title',
123 array(
124 'label' => __('Title','auxin-elements'),
125 'type' => Controls_Manager::TEXT
126 )
127 );
128
129 $this->add_control(
130 'subtitle',
131 array(
132 'label' => __('Subtitle','auxin-elements'),
133 'type' => Controls_Manager::TEXT
134 )
135 );
136
137 $this->add_responsive_control(
138 'alignment',
139 array(
140 'label' => __('Alignment', 'auxin-elements'),
141 'type' => Controls_Manager::CHOOSE,
142 'default' => 'center',
143 'options' => array(
144 'left' => array(
145 'title' => __( 'Left', 'auxin-elements' ),
146 'icon' => 'eicon-text-align-left',
147 ),
148 'center' => array(
149 'title' => __( 'Center', 'auxin-elements' ),
150 'icon' => 'eicon-text-align-center',
151 ),
152 'right' => array(
153 'title' => __( 'Right', 'auxin-elements' ),
154 'icon' => 'eicon-text-align-right',
155 )
156 ),
157 'selectors_dictionary' => [
158 'left' => '',
159 'center' => 'text-align:center;margin-left:auto !important;margin-right:auto !important;',
160 'right' => 'text-align:right;margin-left:auto !important;'
161 ],
162 'selectors' => [
163 '{{WRAPPER}} .aux-chart-title, {{WRAPPER}} .aux-circle-chart-wrapper' => '{{value}}'
164 ]
165 )
166 );
167
168 $this->end_controls_section();
169
170
171 /*-----------------------------------------------------------------------------------*/
172 /* Style Tab
173 /*-----------------------------------------------------------------------------------*/
174
175 /* Color Section
176 /*-------------------------------------*/
177
178 $this->start_controls_section(
179 'chart_style_section',
180 array(
181 'label' => __( 'Chart Style', 'auxin-elements' ),
182 'tab' => Controls_Manager::TAB_STYLE
183 )
184 );
185
186 $this->add_responsive_control(
187 'circle-width',
188 array(
189 'label' => __('Chart Width','auxin-elements' ),
190 'type' => Controls_Manager::SLIDER,
191 'size_units' => array('px'),
192 'range' => array(
193 'px' => array(
194 'min' => 1,
195 'max' => 1000,
196 'step' => 1
197 ),
198 ),
199 'default' => array(
200 'size' => 150,
201 ),
202 'selectors' => array(
203 '{{WRAPPER}} .aux-circle-chart-wrapper' => '--aux-chart-width:{{SIZE}}{{UNIT}};'
204 )
205 )
206 );
207
208 $this->add_responsive_control(
209 'bg-circle-border-width',
210 array(
211 'label' => __('Border Thickness','auxin-elements' ),
212 'type' => Controls_Manager::SLIDER,
213 'size_units' => array('px'),
214 'range' => array(
215 'px' => array(
216 'min' => 1,
217 'max' => 1000,
218 'step' => 1
219 ),
220 ),
221 'selectors' => array(
222 '{{WRAPPER}} .aux-bg-circle' => 'border-width:{{SIZE}}{{UNIT}};',
223 '{{WRAPPER}} .aux-circle-chart-wrapper' => '--aux-chart-border-width:{{SIZE}}{{UNIT}};'
224 )
225 )
226 );
227
228 $this->add_control(
229 'bg-circle-color',
230 [
231 'label' => __( 'Default Circle Color', 'auxin-elements' ),
232 'type' => Controls_Manager::COLOR,
233 'selectors' => [
234 '{{WRAPPER}} .aux-bg-circle' => 'border-color: {{VALUE}};'
235 ]
236 ]
237 );
238
239 $this->add_control(
240 'circle-color',
241 [
242 'label' => __( 'Active Circle Color', 'auxin-elements' ),
243 'type' => Controls_Manager::COLOR,
244 'selectors' => [
245 '{{WRAPPER}} .aux-circle-chart-wrapper' => '--aux-chart-color: {{VALUE}};'
246 ]
247 ]
248 );
249
250 $this->end_controls_section();
251
252 $this->start_controls_section(
253 'text_style_section',
254 array(
255 'label' => __( 'Text Style', 'auxin-elements' ),
256 'tab' => Controls_Manager::TAB_STYLE
257 )
258 );
259
260 $this->add_control(
261 'title_style',
262 [
263 'label' => esc_html__( 'Title Style', 'auxin-elements' ),
264 'type' => Controls_Manager::HEADING,
265 'separator' => 'before',
266 ]
267 );
268
269 $this->add_group_control(
270 Group_Control_Typography::get_type(),
271 array(
272 'name' => 'title_typography',
273 'scheme' => Typography::TYPOGRAPHY_1,
274 'selector' => '{{WRAPPER}} .aux-chart-title'
275 )
276 );
277
278 $this->add_control(
279 'title_color',
280 array(
281 'label' => __( 'Color', 'auxin-elements' ),
282 'type' => Controls_Manager::COLOR,
283 'selectors' => array(
284 '{{WRAPPER}} .aux-chart-title' => 'color: {{VALUE}};',
285 )
286 )
287 );
288
289 $this->add_control(
290 'number_style',
291 [
292 'label' => esc_html__( 'Number Style', 'auxin-elements' ),
293 'type' => Controls_Manager::HEADING,
294 'separator' => 'before',
295 ]
296 );
297
298 $this->add_group_control(
299 Group_Control_Typography::get_type(),
300 array(
301 'name' => 'number_typography',
302 'scheme' => Typography::TYPOGRAPHY_1,
303 'selector' => '{{WRAPPER}} .aux-number'
304 )
305 );
306
307 $this->add_control(
308 'number_color',
309 array(
310 'label' => __( 'Color', 'auxin-elements' ),
311 'type' => Controls_Manager::COLOR,
312 'selectors' => array(
313 '{{WRAPPER}} .aux-number' => 'color: {{VALUE}};',
314 )
315 )
316 );
317
318 $this->add_control(
319 'subtitle_style',
320 [
321 'label' => esc_html__( 'Subtitle Style', 'auxin-elements' ),
322 'type' => Controls_Manager::HEADING,
323 'separator' => 'before',
324 ]
325 );
326
327 $this->add_group_control(
328 Group_Control_Typography::get_type(),
329 array(
330 'name' => 'subtitle_typography',
331 'scheme' => Typography::TYPOGRAPHY_1,
332 'selector' => '{{WRAPPER}} .aux-chart-subtitle'
333 )
334 );
335
336 $this->add_control(
337 'subtitle_color',
338 array(
339 'label' => __( 'Color', 'auxin-elements' ),
340 'type' => Controls_Manager::COLOR,
341 'selectors' => array(
342 '{{WRAPPER}} .aux-chart-subtitle' => 'color: {{VALUE}};',
343 )
344 )
345 );
346
347 $this->end_controls_section();
348 }
349
350 /**
351 * Render 'CircleChart' widget output on the frontend.
352 *
353 * @access protected
354 */
355 protected function render() {
356
357 $settings = $this->get_settings_for_display();
358
359 ?>
360 <span class='aux-chart-title'><?php echo esc_html( $settings['title'] );?></span>
361 <div class="aux-circle-chart-wrapper">
362 <div class="aux-bg-circle"></div>
363 <div class="aux-circle-chart aux-animate">
364 <span class='aux-number'><?php echo esc_html( $settings['percentage']['size'] );?><span>%</span></span>
365 <span class="aux-chart-subtitle"><?php echo esc_html( $settings['subtitle'] );?></span>
366 </div>
367 </div>
368 <?php
369 }
370
371 protected function content_template() {
372 ?>
373 <span class='aux-chart-title'>{{{settings.title}}}</span>
374 <div class="aux-circle-chart-wrapper">
375 <div class="aux-bg-circle"></div>
376 <div class="aux-circle-chart aux-animate">
377 <span class='aux-number'>{{{settings.percentage.size}}}<span>%</span></span>
378 <span class="aux-chart-subtitle">{{{settings.subtitle}}}</span>
379 </div>
380 </div>
381 <?php
382 }
383
384 }
385