PluginProbe
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits / 3.2.3
Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits v3.2.3
3.2.2 3.2.3 3.2.1 3.2.0 3.1.9 3.1.8 3.1.7 3.1.6 3.1.5 3.1.4 3.1.3 3.1.2 3.1.1 3.1.0 3.0.9 trunk 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.3 1.1.4 1.1.5 All 174 releases
master-addons / addons / basic / ma-team-members / ma-team-members.php

ma-team-members.php in Master Addons for Elementor – Elementor Addons, Widgets, Mega Menu Builder, Popup Builder, Widget Builder & Template Kits 3.2.3, at addons/basic/ma-team-members/ma-team-members.php

1,147 lines 34.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace MasterAddons\Addons;
4
5 use MasterAddons\Inc\Classes\Base\Master_Widget;
6 use Elementor\Icons_Manager;
7 use \Elementor\Repeater;
8 use \Elementor\Controls_Manager;
9 use \Elementor\Group_Control_Border;
10 use \Elementor\Group_Control_Typography;
11 use \Elementor\Group_Control_Image_Size;
12 use \Elementor\Group_Control_Background;
13 use \Elementor\Utils;
14 use MasterAddons\Inc\Classes\Helper;
15 use \Elementor\Group_Control_Box_Shadow;
16
17 use MasterAddons\Inc\Admin\Config;
18
19 if (!defined('ABSPATH')) exit; // If this file is called directly, abort.
20
21 class Team_Member extends Master_Widget
22 {
23 use \MasterAddons\Inc\Traits\Widget_Notice;
24 use \MasterAddons\Inc\Traits\Widget_Assets_Trait;
25
26 public function get_name()
27 {
28 return 'ma-team-members';
29 }
30
31 public function get_title()
32 {
33 return esc_html__('Team Member', 'master-addons' );
34 }
35
36 public function get_icon()
37 {
38 return 'jltma-icon ' . Config::get_addon_icon($this->get_name());
39 }
40
41
42 protected function register_controls()
43 {
44
45 /**
46 * Team Member Content Section
47 */
48 $this->start_controls_section(
49 'ma_el_team_content',
50 [
51 'label' => esc_html__('Content', 'master-addons' ),
52 ]
53 );
54
55 // Define default free options - Pro version overrides via filter
56 $members_preset_options = apply_filters('master_addons/addons/team_members/members_preset', [
57 '-basic' => esc_html__('Basic One', 'master-addons'),
58 '-basic-2' => esc_html__('Basic Two', 'master-addons'),
59 '-basic-3' => esc_html__('Basic Three', 'master-addons'),
60 '-basic-4' => esc_html__('Basic Four', 'master-addons'),
61 '-basic-5' => esc_html__('Basic Five', 'master-addons'),
62 '-rounded' => esc_html__('Rounded', 'master-addons'),
63 '-pro-team-1' => esc_html__('Circle Gradient (Pro)', 'master-addons'),
64 '-pro-team-2' => esc_html__('Circle No Gradient (Pro)', 'master-addons'),
65 '-pro-team-3' => esc_html__('Social Left on Hover (Pro)', 'master-addons'),
66 '-pro-team-4' => esc_html__('Social Right on Hover (Pro)', 'master-addons'),
67 '-pro-team-5' => esc_html__('Content on Hover (Pro)', 'master-addons'),
68 ]);
69
70 $this->add_control(
71 'ma_el_team_members_preset',
72 [
73 'label' => esc_html__('Design Variations', 'master-addons'),
74 'type' => Controls_Manager::SELECT,
75 'default' => '-basic',
76 'options' => $members_preset_options,
77 'description' => Helper::upgrade_to_pro('5+ more Variations on'),
78 ]
79 );
80
81 $this->add_control(
82 'ma_el_team_member_image',
83 [
84 'label' => __('Image', 'master-addons' ),
85 'type' => Controls_Manager::MEDIA,
86 'default' => [
87 'url' => Utils::get_placeholder_image_src(),
88 ],
89 ]
90 );
91
92 $this->add_group_control(
93 Group_Control_Image_Size::get_type(),
94 [
95 'name' => 'ma_el_team_member_image_size',
96 'default' => 'full',
97 'condition' => [
98 'ma_el_team_member_image[url]!' => '',
99 ],
100 ]
101 );
102
103 $this->add_control(
104 'ma_el_team_member_name',
105 [
106 'label' => esc_html__('Name', 'master-addons' ),
107 'type' => Controls_Manager::TEXT,
108 'label_block' => true,
109 'default' => esc_html__('John Doe', 'master-addons' ),
110 ]
111 );
112
113 $this->add_control(
114 'ma_el_team_member_designation',
115 [
116 'label' => esc_html__('Designation', 'master-addons' ),
117 'type' => Controls_Manager::TEXT,
118 'label_block' => true,
119 'default' => esc_html__('My Designation', 'master-addons' ),
120 ]
121 );
122
123 $this->add_control(
124 'ma_el_team_member_description',
125 [
126 'label' => esc_html__('Description', 'master-addons' ),
127 'type' => Controls_Manager::TEXTAREA,
128 'default' => esc_html__('Add team member details here', 'master-addons' ),
129 ]
130 );
131
132 $this->add_control(
133 'ma_el_team_members_content_align',
134 [
135 'label' => __('Content Alignment', 'master-addons' ),
136 'type' => Controls_Manager::CHOOSE,
137 'options' => Helper::jltma_content_alignment(),
138 'default' => 'left',
139 'selectors' => [
140 '{{WRAPPER}} .jltma-team-member-content:not(.jltma-team-member-social li a)' => 'text-align: {{VALUE}};',
141 ],
142 ]
143 );
144
145 $this->end_controls_section();
146
147 /*
148 * Team member Social profiles section
149 */
150
151 $this->start_controls_section(
152 'ma_el_section_team_member_social_profiles',
153 [
154 'label' => esc_html__('Social Profiles', 'master-addons' )
155 ]
156 );
157 $this->add_control(
158 'ma_el_team_member_enable_social_profiles',
159 [
160 'label' => esc_html__('Display Social Profiles?', 'master-addons' ),
161 'type' => Controls_Manager::SWITCHER,
162 'default' => 'yes',
163 ]
164 );
165
166 $social_repeater = new Repeater();
167 $social_repeater->add_control(
168 'social',
169 [
170 'label' => esc_html__('Icon', 'master-addons' ),
171 'type' => Controls_Manager::ICONS,
172 'fa4compatibility' => 'icon',
173 'default' => [
174 'value' => 'eicon-wordpress',
175 'library' => 'brand',
176 ]
177 ]
178 );
179
180 $social_repeater->add_control(
181 'link',
182 [
183 'label' => esc_html__('Link', 'master-addons' ),
184 'type' => Controls_Manager::URL,
185 'label_block' => true,
186 'default' => [
187 'url' => '',
188 'is_external' => 'true',
189 ],
190 'placeholder' => esc_html__('Place URL here', 'master-addons' ),
191 ]
192 );
193
194 $this->add_control(
195 'ma_el_team_member_social_profile_links',
196 [
197 'type' => Controls_Manager::REPEATER,
198 'condition' => [
199 'ma_el_team_member_enable_social_profiles!' => '',
200 ],
201 'default' => [
202 [
203 'social' => 'eicon-facebook',
204 'link' => '',
205 ],
206 [
207 'social' => 'icon-twitter',
208 'link' => '',
209 ],
210 [
211 'social' => 'eicon-yoast',
212 'link' => '',
213 ],
214 [
215 'social' => 'eicon-e-youtube',
216 'link' => '',
217 ],
218 ],
219 'fields' => $social_repeater->get_controls(),
220 // 'title_field' => '<i class="{{ social }}"></i> {{{ social.replace( \'fab fa-\', \'\' ).replace( \'-\', \' \' ).replace( /\b\w/g, function( letter ){ return letter.toUpperCase() } ) }}}',
221 'title_field' => 'Social Icon',
222 ]
223 );
224
225 $this->add_control(
226 'ma_el_team_members_social_align',
227 [
228 'label' => __('Content Alignment', 'master-addons' ),
229 'type' => Controls_Manager::CHOOSE,
230 'options' => Helper::jltma_content_alignment(),
231 'default' => 'left',
232 'selectors' => [
233 '{{WRAPPER}} .jltma-team-member-social' => 'text-align: {{VALUE}};',
234 ],
235 ]
236 );
237
238 $this->end_controls_section();
239
240 // Help Docs section (links from config.php)
241 $this->jltma_help_docs();
242
243 $this->upgrade_to_pro_message();
244
245 /*
246 * Team Members Styling Section
247 */
248 $this->start_controls_section(
249 'ma_el_section_team_members_styles_preset',
250 [
251 'label' => esc_html__('General Styles', 'master-addons' ),
252 'tab' => Controls_Manager::TAB_STYLE
253 ]
254 );
255
256 $this->add_control(
257 'ma_el_team_members_avatar_bg',
258 [
259 'label' => esc_html__('Avatar Background Color', 'master-addons' ),
260 'type' => Controls_Manager::COLOR,
261 'default' => '#826EFF',
262 'selectors' => [
263 '{{WRAPPER}} .jltma-team-member-circle .jltma-team-member-thumb svg.team-avatar-bg' => 'fill: {{VALUE}};',
264 ],
265 'condition' => [
266 'ma_el_team_members_preset' => '-circle',
267 ],
268 ]
269 );
270
271 $this->add_control(
272 'ma_el_team_members_bg',
273 [
274 'label' => esc_html__('Background Color', 'master-addons' ),
275 'type' => Controls_Manager::COLOR,
276 'default' => '',
277 'selectors' => [
278 '{{WRAPPER}} .jltma-team-member-basic,
279 {{WRAPPER}} .jltma-team-member-circle,
280 {{WRAPPER}} .jltma-team-member-social-left,
281 {{WRAPPER}} .jltma-team-member-basic-4:hover .jltma-team-member-content:before,
282 {{WRAPPER}} .jltma-team-member-rounded' => 'background: {{VALUE}};',
283 '{{WRAPPER}} .bb' => 'border-bottom: {{VALUE}};'
284 ],
285 ]
286 );
287
288 $this->add_responsive_control(
289 'jltma_team_members_item_border_radius',
290 [
291 'label' => __('Item Border Radius', 'master-addons' ),
292 'type' => Controls_Manager::DIMENSIONS,
293 'size_units' => ['px', '%'],
294 'selectors' => [
295 '{{WRAPPER}} .jltma-team-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
296 ],
297 ]
298 );
299
300 $this->add_group_control(
301 Group_Control_Box_Shadow::get_type(),
302 [
303 'name' => 'jltma_team_members_item_box_shadow',
304 'default' => '0',
305 'selector' => '{{WRAPPER}} .jltma-team-item',
306 ]
307 );
308
309 $this->end_controls_section();
310
311 // Thumb Options
312
313 $this->start_controls_section(
314 'section_team_carousel_thumb',
315 [
316 'label' => __('Thumb', 'master-addons' ),
317 'tab' => Controls_Manager::TAB_STYLE,
318 ]
319 );
320
321 $this->add_group_control(
322 Group_Control_Border::get_type(),
323 [
324 'name' => 'jltma_team_members_thumb_border',
325 'label' => esc_html__('Border', 'master-addons' ),
326 'placeholder' => '1px',
327 'default' => '1px',
328 'selector' => '{{WRAPPER}} .jltma-team-member-thumb img',
329 ]
330 );
331
332 $this->add_responsive_control(
333 'jltma_team_members_thumb_radius',
334 [
335 'label' => __('Border Radius', 'master-addons' ),
336 'type' => Controls_Manager::DIMENSIONS,
337 'size_units' => ['px', '%'],
338 'selectors' => [
339 '{{WRAPPER}} .jltma-team-member-thumb img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
340 ],
341 ]
342 );
343
344 $this->add_responsive_control(
345 'jltma_team_members_style_padding',
346 [
347 'label' => __('Padding', 'master-addons' ),
348 'type' => Controls_Manager::DIMENSIONS,
349 'size_units' => ['px', 'em', '%'],
350 'range' => [
351 'px' => [
352 'min' => 0,
353 'max' => 999,
354 'step' => 1,
355 ],
356 ],
357 'selectors' => [
358 '{{WRAPPER}} .jltma-team-member-thumb' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
359 ]
360 ]
361 );
362
363 $this->add_responsive_control(
364 'jltma_team_members_style_margin',
365 [
366 'label' => __('Margin', 'master-addons' ),
367 'type' => Controls_Manager::DIMENSIONS,
368 'size_units' => ['px', 'em', '%'],
369 'range' => [
370 'px' => [
371 'min' => 0,
372 'max' => 999,
373 'step' => 1,
374 ],
375 ],
376 'selectors' => [
377 '{{WRAPPER}} .jltma-team-member-thumb' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
378 ]
379 ]
380 );
381
382 $this->end_controls_section();
383
384 // Member content details
385
386 $this->start_controls_section(
387 'section_team_carousel_Content',
388 [
389 'label' => __('Content', 'master-addons' ),
390 'tab' => Controls_Manager::TAB_STYLE,
391 ]
392 );
393
394 $this->add_group_control(
395 Group_Control_Background::get_type(),
396 [
397 'name' => 'jltma_team_members_content_bg',
398 'selector' => '{{WRAPPER}} .jltma-team-member-content',
399 ]
400 );
401
402 $this->add_group_control(
403 Group_Control_Border::get_type(),
404 [
405 'name' => 'jltma_team_members_content_border',
406 'label' => esc_html__('Border', 'master-addons' ),
407 'placeholder' => '1px',
408 'default' => '1px',
409 'selector' => '{{WRAPPER}} .jltma-team-member-content',
410 ]
411 );
412
413 $this->add_responsive_control(
414 'jltma_team_members_thumb_border_radius',
415 [
416 'label' => __('Border Radius', 'master-addons' ),
417 'type' => Controls_Manager::DIMENSIONS,
418 'size_units' => ['px', '%'],
419 'selectors' => [
420 '{{WRAPPER}} .jltma-team-member-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
421 ],
422 ]
423 );
424
425 $this->add_responsive_control(
426 'jltma_team_members_style_thumb_padding',
427 [
428 'label' => __('Padding', 'master-addons' ),
429 'type' => Controls_Manager::DIMENSIONS,
430 'size_units' => ['px', 'em', '%'],
431 'range' => [
432 'px' => [
433 'min' => 0,
434 'max' => 999,
435 'step' => 1,
436 ],
437 ],
438 'selectors' => [
439 '{{WRAPPER}} .jltma-team-member-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
440 ]
441 ]
442 );
443
444 $this->add_responsive_control(
445 'jltma_team_members_style_thumb_margin',
446 [
447 'label' => __('Margin', 'master-addons' ),
448 'type' => Controls_Manager::DIMENSIONS,
449 'size_units' => ['px', 'em', '%'],
450 'range' => [
451 'px' => [
452 'min' => 0,
453 'max' => 999,
454 'step' => 1,
455 ],
456 ],
457 'selectors' => [
458 '{{WRAPPER}} .jltma-team-member-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
459 ]
460 ]
461 );
462
463 $this->end_controls_section();
464
465 // Name, Designation , About Font Color and Typography
466
467 $this->start_controls_section(
468 'section_team_carousel_name',
469 [
470 'label' => __('Name', 'master-addons' ),
471 'tab' => Controls_Manager::TAB_STYLE,
472 ]
473 );
474
475 $this->add_control(
476 'ma_el_title_color',
477 [
478 'label' => __('Color', 'master-addons' ),
479 'type' => Controls_Manager::COLOR,
480 'default' => '#000',
481 'selectors' => [
482 '{{WRAPPER}} .jltma-team-member-name' => 'color: {{VALUE}};',
483 ],
484 ]
485 );
486
487 $this->add_group_control(
488 Group_Control_Typography::get_type(),
489 [
490 'name' => 'title_typography',
491 'selector' => '{{WRAPPER}} .jltma-team-member-name',
492 ]
493 );
494
495 $this->add_responsive_control(
496 'jltma_team_member_name_padding',
497 [
498 'label' => __('Padding', 'master-addons' ),
499 'type' => Controls_Manager::DIMENSIONS,
500 'size_units' => ['px', 'em', '%'],
501 'range' => [
502 'px' => [
503 'min' => 0,
504 'max' => 999,
505 'step' => 1,
506 ],
507 ],
508 'selectors' => [
509 '{{WRAPPER}} .jltma-team-member-name' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
510 ]
511 ]
512 );
513
514 $this->add_responsive_control(
515 'jltma_team_member_name_margin',
516 [
517 'label' => __('Margin', 'master-addons' ),
518 'type' => Controls_Manager::DIMENSIONS,
519 'size_units' => ['px', 'em', '%'],
520 'range' => [
521 'px' => [
522 'min' => 0,
523 'max' => 999,
524 'step' => 1,
525 ],
526 ],
527 'selectors' => [
528 '{{WRAPPER}} .jltma-team-member-name' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
529 ]
530 ]
531 );
532
533 $this->end_controls_section();
534
535 $this->start_controls_section(
536 'section_team_member_designation',
537 [
538 'label' => __('Designation', 'master-addons' ),
539 'tab' => Controls_Manager::TAB_STYLE,
540 ]
541 );
542
543 $this->add_control(
544 'ma_el_designation_color',
545 [
546 'label' => __('Color', 'master-addons' ),
547 'type' => Controls_Manager::COLOR,
548 'default' => '#8a8d91',
549 'selectors' => [
550 '{{WRAPPER}} .jltma-team-member-designation' => 'color: {{VALUE}};',
551 ],
552 ]
553 );
554
555 $this->add_group_control(
556 Group_Control_Typography::get_type(),
557 [
558 'name' => 'designation_typography',
559 'selector' => '{{WRAPPER}} .jltma-team-member-designation',
560 ]
561 );
562
563 $this->add_responsive_control(
564 'jltma_team_member_designation_padding',
565 [
566 'label' => __('Padding', 'master-addons' ),
567 'type' => Controls_Manager::DIMENSIONS,
568 'size_units' => ['px', 'em', '%'],
569 'range' => [
570 'px' => [
571 'min' => 0,
572 'max' => 999,
573 'step' => 1,
574 ],
575 ],
576 'selectors' => [
577 '{{WRAPPER}} .jltma-team-member-designation' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
578 ]
579 ]
580 );
581
582 $this->add_responsive_control(
583 'jltma_team_member_designation_margin',
584 [
585 'label' => __('Margin', 'master-addons' ),
586 'type' => Controls_Manager::DIMENSIONS,
587 'size_units' => ['px', 'em', '%'],
588 'range' => [
589 'px' => [
590 'min' => 0,
591 'max' => 999,
592 'step' => 1,
593 ],
594 ],
595 'selectors' => [
596 '{{WRAPPER}} .jltma-team-member-designation' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
597 ]
598 ]
599 );
600 $this->end_controls_section();
601
602 $this->start_controls_section(
603 'section_team_carousel_description',
604 [
605 'label' => __('Description', 'master-addons' ),
606 'tab' => Controls_Manager::TAB_STYLE,
607 ]
608 );
609
610 $this->add_control(
611 'ma_el_description_color',
612 [
613 'label' => __('Color', 'master-addons' ),
614 'type' => Controls_Manager::COLOR,
615 'default' => '#8a8d91',
616 'selectors' => [
617 '{{WRAPPER}} .jltma-team-member-about' => 'color: {{VALUE}};',
618 ],
619 ]
620 );
621
622 $this->add_group_control(
623 Group_Control_Typography::get_type(),
624 [
625 'name' => 'ma_el_description_typography',
626 'selector' => '{{WRAPPER}} .jltma-team-member-about',
627 ]
628 );
629
630 $this->add_responsive_control(
631 'jltma_team_member_description_padding',
632 [
633 'label' => __('Padding', 'master-addons' ),
634 'type' => Controls_Manager::DIMENSIONS,
635 'size_units' => ['px', 'em', '%'],
636 'range' => [
637 'px' => [
638 'min' => 0,
639 'max' => 999,
640 'step' => 1,
641 ],
642 ],
643 'selectors' => [
644 '{{WRAPPER}} .jltma-team-member-about' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
645 ]
646 ]
647 );
648
649 $this->add_responsive_control(
650 'jltma_team_member_description_margin',
651 [
652 'label' => __('Margin', 'master-addons' ),
653 'type' => Controls_Manager::DIMENSIONS,
654 'size_units' => ['px', 'em', '%'],
655 'range' => [
656 'px' => [
657 'min' => 0,
658 'max' => 999,
659 'step' => 1,
660 ],
661 ],
662 'selectors' => [
663 '{{WRAPPER}} .jltma-team-member-about' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
664 ]
665 ]
666 );
667 $this->end_controls_section();
668
669 //Social Colors
670 $this->start_controls_section(
671 'ma_el_team_member_social_section',
672 [
673 'label' => __('Social', 'master-addons' ),
674 'tab' => Controls_Manager::TAB_STYLE,
675 // 'condition' => [
676 // 'ma_el_team_members_preset' => ['-social-left', '-rounded']
677 // ],
678 ]
679 );
680
681 $this->add_responsive_control(
682 'jltma_team_member_socials_padding',
683 [
684 'label' => __('Padding', 'master-addons' ),
685 'type' => Controls_Manager::DIMENSIONS,
686 'size_units' => ['px', 'em', '%'],
687 'range' => [
688 'px' => [
689 'min' => 0,
690 'max' => 999,
691 'step' => 1,
692 ],
693 ],
694 'default' => [
695 'unit' => 'px',
696 'size' => 8,
697 ],
698 'selectors' => [
699 '{{WRAPPER}} .jltma-team-member-social li a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
700 ]
701 ]
702 );
703
704 $this->add_responsive_control(
705 'jltma_team_member_socials_margin',
706 [
707 'label' => __('Margin', 'master-addons' ),
708 'type' => Controls_Manager::DIMENSIONS,
709 'size_units' => ['px', 'em', '%'],
710 'range' => [
711 'px' => [
712 'min' => 0,
713 'max' => 999,
714 'step' => 1,
715 ],
716 ],
717 'selectors' => [
718 '{{WRAPPER}} .jltma-team-member-social li a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
719 ]
720 ]
721 );
722
723 $this->start_controls_tabs('ma_el_team_members_social_icons_style_tabs');
724
725 $this->start_controls_tab('ma_el_team_members_social_icon_tab', [
726 'label' => esc_html__(
727 'Normal',
728 'master-addons'
729 )
730 ]);
731
732 $this->add_control(
733 'ma_el_team_member_social_icon_size',
734 [
735 'label' => __('Icon Size', 'master-addons' ),
736 'type' => Controls_Manager::SLIDER,
737 'range' => [
738 'px' => [
739 'min' => 10,
740 'max' => 100,
741 ],
742 ],
743 'selectors' => [
744 '{{WRAPPER}} .jltma-team-member-social li a' => 'font-size: {{SIZE}}{{UNIT}};',
745 '{{WRAPPER}} .jltma-team-member-social li a svg' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};',
746 ],
747 ]
748 );
749
750 $this->add_control(
751 'ma_el_team_member_social_icon_color',
752 [
753 'label' => esc_html__('Icon Color', 'master-addons' ),
754 'type' => Controls_Manager::COLOR,
755 'default' => '#999',
756 'selectors' => [
757 '{{WRAPPER}} .jltma-team-member-social li a' => 'color: {{VALUE}};',
758 '{{WRAPPER}} .jltma-team-member-social li a svg' => 'fill: {{VALUE}};',
759 ],
760 // 'condition' => [
761 // 'ma_el_team_members_preset' => '-social-left',
762 // ],
763 ]
764 );
765
766 $this->add_control(
767 'ma_el_team_member_social_color_1',
768 [
769 'label' => esc_html__('Background Color', 'master-addons' ),
770 'type' => Controls_Manager::COLOR,
771 'default' => '#4b00e7',
772 'selectors' => [
773 '{{WRAPPER}} .jltma-team-member-social li a' => 'background: {{VALUE}};',
774 ],
775 // 'condition' => [
776 // 'ma_el_team_members_preset' => '-social-left',
777 // ],
778 ]
779 );
780
781 $this->add_control(
782 'ma_el_team_member_social_color_2',
783 [
784 'label' => esc_html__('Background Color 2', 'master-addons' ),
785 'type' => Controls_Manager::COLOR,
786 'default' => '#272c44',
787 'selectors' => [
788 '{{WRAPPER}} .jltma-team-member-rounded .jltma-team-member-social li a' => 'background: {{VALUE}};',
789 ],
790 'condition' => [
791 'ma_el_team_members_preset' => '-rounded',
792 ],
793 ]
794 );
795
796 $this->end_controls_tab();
797
798 $this->start_controls_tab('ma_el_team_members_social_icon_hover', [
799 'label' => esc_html__(
800 'Hover',
801 'master-addons'
802 )
803 ]);
804
805 $this->add_control(
806 'ma_el_team_member_social_icon_hover_size',
807 [
808 'label' => __('Icon Size', 'master-addons' ),
809 'type' => Controls_Manager::SLIDER,
810 'range' => [
811 'px' => [
812 'min' => 10,
813 'max' => 100,
814 ],
815 ],
816 'selectors' => [
817 '{{WRAPPER}} .jltma-team-member-social li a' => 'font-size: {{SIZE}}{{UNIT}};',
818 '{{WRAPPER}} .jltma-team-member-social li a svg' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};',
819 ],
820 ]
821 );
822
823 $this->add_control(
824 'ma_el_team_member_social_icon_hover_color',
825 [
826 'label' => esc_html__('Icon Color', 'master-addons' ),
827 'type' => Controls_Manager::COLOR,
828 'default' => '#FFF',
829 'selectors' => [
830 '{{WRAPPER}} .jltma-team-member-social li a:hover' => 'color: {{VALUE}};',
831 '{{WRAPPER}} .jltma-team-member-social li a:hover svg' => 'fill: {{VALUE}};',
832 ],
833 // 'condition' => [
834 // 'ma_el_team_members_preset' => '-social-left',
835 // ],
836 ]
837 );
838
839 $this->add_control(
840 'ma_el_team_member_social_hover_color_1',
841 [
842 'label' => esc_html__('Hover BG Color', 'master-addons' ),
843 'type' => Controls_Manager::COLOR,
844 'default' => '#ff6d55',
845 'selectors' => [
846 '{{WRAPPER}} .jltma-team-member-social-left .jltma-team-member-social li a:hover' => 'background: {{VALUE}};',
847 '{{WRAPPER}} .jltma-team-member-social-left .jltma-team-member-social li a:hover svg' => 'fill: {{VALUE}};',
848 ],
849 'condition' => [
850 'ma_el_team_members_preset' => '-social-left'
851 ],
852 ]
853 );
854
855 $this->add_control(
856 'ma_el_team_member_social_hover_color_2',
857 [
858 'label' => esc_html__('Hover BG Color 2', 'master-addons' ),
859 'type' => Controls_Manager::COLOR,
860 'default' => '#ff6d55',
861 'selectors' => [
862 '{{WRAPPER}} .jltma-team-member-rounded .jltma-team-member-social li a:hover' => 'background: {{VALUE}};',
863 '{{WRAPPER}} .jltma-team-member-rounded .jltma-team-member-social li a:hover svg' => 'fill: {{VALUE}};',
864 ],
865 'condition' => [
866 'ma_el_team_members_preset' => '-rounded'
867 ],
868 ]
869 );
870
871 $this->add_responsive_control(
872 'jltma_team_member_social_icons_padding',
873 [
874 'label' => __('Padding', 'master-addons' ),
875 'type' => Controls_Manager::DIMENSIONS,
876 'size_units' => ['px', 'em', '%'],
877 'range' => [
878 'px' => [
879 'min' => 0,
880 'max' => 999,
881 'step' => 1,
882 ],
883 ],
884 'default' => [
885 'unit' => 'px',
886 'size' => 8,
887 ],
888 'selectors' => [
889 '{{WRAPPER}} .jltma-team-member-social li a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
890 ]
891 ]
892 );
893
894 $this->add_responsive_control(
895 'jltma_team_member_social_icons_margin',
896 [
897 'label' => __('Margin', 'master-addons' ),
898 'type' => Controls_Manager::DIMENSIONS,
899 'size_units' => ['px', 'em', '%'],
900 'range' => [
901 'px' => [
902 'min' => 0,
903 'max' => 999,
904 'step' => 1,
905 ],
906 ],
907 'selectors' => [
908 '{{WRAPPER}} .jltma-team-member-social li a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
909 ]
910 ]
911 );
912
913 $this->end_controls_tab();
914
915 $this->end_controls_tabs();
916
917 $this->end_controls_section();
918
919 }
920
921 protected function render()
922 {
923 $settings = $this->get_settings_for_display();
924
925 $ma_el_team_member_image = $settings['ma_el_team_member_image'];
926 $ma_el_team_member_image_url = Group_Control_Image_Size::get_attachment_image_src($ma_el_team_member_image['id'], 'ma_el_team_member_image_size', $settings);
927 if (empty($ma_el_team_member_image_url)) {
928 $ma_el_team_member_image_url = $ma_el_team_member_image['url'];
929 } else {
930 $ma_el_team_member_image_url = $ma_el_team_member_image_url;
931 }
932
933 $migrated = isset($settings['__fa4_migrated']['social']);
934 $is_new = empty($settings['icon']) && Icons_Manager::is_migration_allowed();
935
936 if ($settings['ma_el_team_members_preset'] == '-style6') { ?>
937
938 <div id="jltma-team-member-slider" class="jltma-team-member-slider owl-carousel owl-theme">
939 <div class="ma-el-member-container">
940 <div class="ma-el-inner-container">
941
942 <?php
943 if (isset($settings['ma_el_team_member_image']['id']) && $settings['ma_el_team_member_image']['id'] != "") {
944 echo $this->render_image($settings['ma_el_team_member_image']['id'], $settings); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- plugin method returns safe HTML
945 } else {
946 echo '<img src="' . esc_url($ma_el_team_member_image_url) . '" >';
947 } ?>
948
949 <div class="ma-el-member-details">
950 <h4 class="name">
951 <?php echo $this->parse_text_editor($settings['ma_el_team_member_name']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Elementor safe HTML ?>
952 </h4>
953 <p class="designation">
954 <?php echo esc_html($settings['ma_el_team_member_designation']); ?>
955 </p>
956 <p>
957 <?php echo esc_html($settings['ma_el_team_member_description']); ?>
958 </p>
959
960 <div class="member-social-link">
961
962 <?php if ($settings['ma_el_team_member_enable_social_profiles'] == 'yes') : ?>
963 <?php foreach ($settings['ma_el_team_member_social_profile_links'] as $item) : ?>
964 <?php $target = $item['link']['is_external'] ? ' target="_blank"' : ''; ?>
965 <a href="<?php echo esc_url($item['link']['url']); ?>" <?php echo esc_attr($target); ?>>
966 <?php
967 if ($is_new || $migrated){
968 Icons_Manager::render_icon($item['social'], ['aria-hidden' => 'true']);
969 } else { ?>
970 <i class="<?php echo esc_attr($item['icon']); ?>" aria-hidden="true"></i>
971 <?php } ?>
972 </a>
973 <?php endforeach; ?>
974 <?php endif; ?>
975
976 </div>
977 </div><!-- /.member-details -->
978 </div><!-- /.inner-container -->
979 </div><!-- /.member-container -->
980 </div><!-- /.jltma-team-member-slider -->
981
982 <?php } else { ?>
983 <div id="jltma-team-member-<?php echo esc_attr($this->get_id()); ?>" class="jltma-team-item
984 text-center <?php if ($settings['ma_el_team_members_preset'] == '-rounded') echo "rounded"; ?>">
985 <div class="jltma-team-member<?php echo esc_attr($settings['ma_el_team_members_preset']); ?> <?php if ($settings['ma_el_team_members_preset'] == '-basic-4') echo "bb"; ?> <?php if ($settings['ma_el_team_members_preset'] == '-circle-2') echo "bg-transparent"; ?>">
986 <div class="jltma-team-member-thumb">
987 <?php if ($settings['ma_el_team_members_preset'] == '-circle') : ?>
988 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
989 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
990 </svg>
991 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
992 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
993 </svg>
994 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
995 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
996 </svg>
997 <?php endif; ?>
998
999 <?php
1000 if (isset($settings['ma_el_team_member_image']['id']) && $settings['ma_el_team_member_image']['id'] != "") {
1001 echo $this->render_image($settings['ma_el_team_member_image']['id'], $settings); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- plugin method returns safe HTML
1002 } else {
1003 echo '<img src="' . esc_url($ma_el_team_member_image_url) . '" >';
1004 } ?>
1005
1006 </div>
1007 <div class="jltma-team-member-content">
1008 <h2 class="jltma-team-member-name">
1009 <?php echo $this->parse_text_editor($settings['ma_el_team_member_name']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Elementor safe HTML ?>
1010 </h2>
1011
1012 <span class="jltma-team-member-designation">
1013 <?php echo $this->parse_text_editor($settings['ma_el_team_member_designation']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Elementor safe HTML ?>
1014 </span>
1015
1016 <p class="jltma-team-member-about">
1017 <?php echo $this->parse_text_editor($settings['ma_el_team_member_description']); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Elementor safe HTML ?>
1018 </p>
1019
1020 <?php if ($settings['ma_el_team_member_enable_social_profiles'] == 'yes') { ?>
1021 <ul class="list-inline jltma-team-member-social">
1022 <?php foreach ($settings['ma_el_team_member_social_profile_links'] as $item) { ?>
1023
1024 <?php $target = $item['link']['is_external'] ? ' target="_blank"' : ''; ?>
1025 <li>
1026 <a href="<?php echo esc_url($item['link']['url']); ?>" <?php echo esc_attr($target); ?>>
1027 <?php
1028 if ($is_new || $migrated){
1029 Icons_Manager::render_icon($item['social'], ['aria-hidden' => 'true']);
1030 } else { ?>
1031 <i class="<?php echo esc_attr($item['icon']); ?>" aria-hidden="true"></i>
1032 <?php } ?>
1033 </a>
1034 </li>
1035
1036 <?php } ?>
1037 </ul>
1038 <?php } ?>
1039 </div>
1040 </div>
1041 </div>
1042
1043 <?php }
1044 }
1045
1046 private function render_image($image_id, $settings)
1047 {
1048 $ma_el_team_member_image_size = $settings['ma_el_team_member_image_size_size'];
1049
1050 if ('custom' === $ma_el_team_member_image_size) {
1051 $image_src = Group_Control_Image_Size::get_attachment_image_src($image_id, $ma_el_team_member_image_size, $settings);
1052 } else {
1053 $image_src = wp_get_attachment_image_src($image_id, $ma_el_team_member_image_size);
1054 $image_src = $image_src[0];
1055 }
1056
1057 return sprintf('<img src="%s" class="circled" alt="%s" />', esc_url($image_src), esc_html(get_post_meta($image_id, '_wp_attachment_image_alt', true)));
1058 }
1059
1060 protected function content_template()
1061 { ?>
1062
1063 <# if ( '-style6'==settings.ma_el_team_members_preset ) { #>
1064
1065 <div id="jltma-team-member-slider" class="jltma-team-member-slider owl-carousel owl-theme">
1066
1067 <div class="item">
1068 <div class="member-container">
1069 <div class="inner-container">
1070 <img src="{{ settings.ma_el_team_member_image.url }}" alt="{{ settings.ma_el_team_member_name }}">
1071 <div class="member-details">
1072 <h4 class="name">
1073 {{ settings.ma_el_team_member_name }}
1074 </h4>
1075 <p class="designation">
1076 {{ settings.ma_el_team_member_designation }}
1077 </p>
1078 <p>
1079 {{ settings.ma_el_team_member_description }}
1080 </p>
1081 <div class="member-social-link">
1082
1083 <# if ( 'yes'==settings.ma_el_team_member_enable_social_profiles ) { #>
1084
1085 <# _.each( settings.ma_el_team_member_social_profile_links, function( item, index ) { #>
1086
1087 <# var target=item.link.is_external ? ' target="_blank"' : '' #>
1088
1089 <a href="{{ item.link.url }}" {{{ target }}}><i class="{{ item.social.value }}"></i></a>
1090
1091 <# }); #>
1092
1093 <# } #>
1094
1095 </div>
1096 </div><!-- /.member-details -->
1097 </div><!-- /.inner-container -->
1098 </div><!-- /.member-container -->
1099 </div><!-- /.item -->
1100
1101 </div><!-- /.jltma-team-member-slider -->
1102
1103 <# } else{ #>
1104
1105 <div id="jltma-team-member" class="jltma-team-item">
1106 <div class="jltma-team-member{{ settings.ma_el_team_members_preset }}">
1107 <div class="jltma-team-member-thumb">
1108 <# if ( '-circle'==settings.ma_el_team_members_preset ) { #>
1109 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
1110 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
1111 </svg>
1112 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
1113 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
1114 </svg>
1115 <svg xmlns="http://www.w3.org/2000/svg" class="team-avatar-bg">
1116 <path fill-rule="evenodd" opacity=".659" d="M61.922 0C95.654 0 123 27.29 123 60.953c0 33.664-27.346 60.953-61.078 60.953-33.733 0-61.078-27.289-61.078-60.953C.844 27.29 28.189 0 61.922 0z" />
1117 </svg>
1118 <# } #>
1119 <img src="{{ settings.ma_el_team_member_image.url }}" class="circled" alt="{{ settings.ma_el_team_member_name }}">
1120
1121 </div>
1122 <div class="jltma-team-member-content">
1123 <h2 class="jltma-team-member-name">{{{ settings.ma_el_team_member_name }}}</h2>
1124 <span class="jltma-team-member-designation">{{{ settings.ma_el_team_member_designation }}}</span>
1125 <p class="jltma-team-member-about">{{{ settings.ma_el_team_member_description }}}</p>
1126 <# if ( 'yes'==settings.ma_el_team_member_enable_social_profiles ) { #>
1127 <ul class="list-inline jltma-team-member-social">
1128 <# _.each( settings.ma_el_team_member_social_profile_links, function( item, index ) { #>
1129
1130 <# var target=item.link.is_external ? ' target="_blank"' : '' #>
1131 <li>
1132 <a href="{{ item.link.url }}" {{{ target }}}><i class="{{ item.social.value }}"></i></a>
1133 </li>
1134
1135 <# }); #>
1136 </ul>
1137 <# } #>
1138 </div>
1139 </div>
1140 </div>
1141
1142 <# } #>
1143
1144 <?php
1145 }
1146 }
1147