PluginProbe ʕ •ᴥ•ʔ
Premium Addons for Elementor – Powerful Elementor Templates & Widgets / 4.1.0
Premium Addons for Elementor – Powerful Elementor Templates & Widgets v4.1.0
4.11.79 4.11.78 4.11.77 4.11.76 4.11.75 3.20.5 4.11.69 3.20.6 4.11.7 3.20.7 4.11.70 3.20.8 4.11.71 3.20.9 4.11.72 3.21.1 4.11.73 3.21.2 4.11.74 3.21.3 4.11.8 3.21.4 4.11.9 3.21.5 4.2.0 3.21.6 4.2.1 3.3.0 4.2.2 3.3.1 4.2.3 3.3.2 4.2.4 3.3.3 4.2.5 3.3.4 4.2.6 3.3.5 4.2.7 3.3.6 4.2.8 3.3.7 4.2.9 3.3.8 4.3.0 3.3.9 4.3.1 3.4.0 4.3.2 3.4.1 4.3.3 3.4.2 4.3.4 3.4.3 4.3.5 3.4.4 4.3.6 3.4.5 4.3.7 3.4.6 4.3.8 3.4.7 4.3.9 3.4.8 4.4.0 3.4.9 4.4.1 3.5.0 4.4.2 3.5.1 4.4.3 3.5.2 4.4.4 3.5.3 4.4.5 3.5.4 4.4.6 3.5.5 4.4.7 3.5.6 4.4.8 3.5.7 4.4.9 3.5.8 4.5.0 3.5.9 4.5.1 3.6.0 4.5.2 3.6.1 4.5.3 3.6.2 4.5.4 3.6.3 4.5.5 3.6.4 4.5.6 3.6.5 4.5.7 3.6.6 4.5.8 3.6.7 4.5.9 3.6.8 4.6.0 3.6.9 4.6.1 3.7.0 4.7.0 3.7.1 4.7.1 3.7.2 4.7.2 3.7.3 4.7.3 3.7.4 4.7.4 3.7.5 4.7.5 3.7.6 4.7.6 3.7.7 4.7.7 3.7.8 4.7.8 3.7.9 4.7.9 3.8.0 4.8.0 3.8.1 4.8.1 3.8.2 4.8.10 3.8.3 4.8.11 3.8.4 4.8.2 3.8.5 4.8.3 3.8.6 4.8.4 3.8.7 4.8.5 3.8.8 4.8.6 3.8.9 4.8.7 3.9.0 4.8.8 3.9.1 4.8.9 3.9.2 4.9.0 3.9.3 4.9.0-beta1 3.9.4 4.9.0-beta2 3.9.5 4.9.1 3.9.6 4.9.10 3.9.7 4.9.11 3.9.8 4.9.12 3.9.9 4.9.13 4.0.1 4.9.14 4.0.3 4.9.15 4.0.4 4.9.16 4.0.5 4.9.17 4.0.6 4.9.18 4.0.7 4.9.19 4.0.8 4.9.2 4.0.9 4.9.20 4.1.0 4.9.21 4.1.1 4.9.22 4.1.2 4.9.23 4.1.3 4.9.24 trunk 4.1.4 4.9.25 1.0 4.1.5 4.9.26 1.01 4.1.6 4.9.27 1.02 4.1.7 4.9.28 1.03 4.1.8 4.9.29 1.04 4.1.9 4.9.3 1.05 4.10.0 4.9.30 1.06 4.10.1 4.9.31 1.07 4.10.10 4.9.32 1.08 4.10.11 4.9.33 1.09 4.10.12 4.9.34 2.0 4.10.13 4.9.35 2.0.1 4.10.14 4.9.36 2.0.2 4.10.15 4.9.37 2.0.3 4.10.16 4.9.38 2.0.4 4.10.17 4.9.39 2.0.5 4.10.18 4.9.4 2.0.6 4.10.19 4.9.40 2.0.7 4.10.2 4.9.41 2.0.8 4.10.20 4.9.42 2.0.9 4.10.21 4.9.43 2.1.0 4.10.22 4.9.45 2.1.1 4.10.23 4.9.46 2.1.2 4.10.24 4.9.47 2.1.3 4.10.25 4.9.48 2.1.4 4.10.26 4.9.49 2.1.5 4.10.27 4.9.5 2.1.5-beta1 4.10.28 4.9.50 2.1.6 4.10.29 4.9.51 2.1.7 4.10.3 4.9.52 2.1.8 4.10.30 4.9.53 2.1.9 4.10.31 4.9.54 2.2.0 4.10.32 4.9.55 2.2.1 4.10.33 4.9.56 2.2.2 4.10.34 4.9.57 2.2.3 4.10.35 4.9.6 2.2.4 4.10.36 4.9.7 2.2.5 4.10.37 4.9.8 2.2.6 4.10.38 4.9.9 2.2.7 4.10.39 2.2.8 4.10.4 2.2.9 4.10.40 2.3.0 4.10.41 2.3.1 4.10.42 2.3.2 4.10.43 2.3.3 4.10.44 2.3.4 4.10.45 2.3.5 4.10.46 2.3.6 4.10.47 2.3.7 4.10.48 2.3.8 4.10.49 2.3.9 4.10.5 2.4.0 4.10.50 2.4.1 4.10.51 2.5.0 4.10.52 2.5.1 4.10.53 2.5.2 4.10.54 2.5.3 4.10.55 2.5.4 4.10.56 2.5.5 4.10.57 2.5.6 4.10.58 2.5.7 4.10.59 2.5.8 4.10.6 2.5.9 4.10.60 2.6.0 4.10.61 2.6.1 4.10.62 2.6.2 4.10.63 2.6.3 4.10.64 2.6.4 4.10.65 2.6.5 4.10.66 2.6.6 4.10.67 2.6.7 4.10.68 2.6.8 4.10.69 2.6.9 4.10.7 2.7.0 4.10.70 2.7.1 4.10.71 2.7.2 4.10.72 2.7.3 4.10.73 2.7.4 4.10.74 2.7.5 4.10.75 2.7.6 4.10.76 2.7.7 4.10.77 2.7.8 4.10.78 2.7.9 4.10.79 2.8.0 4.10.8 2.8.1 4.10.80 2.8.2 4.10.81 2.8.3 4.10.82 2.8.4 4.10.83 2.8.5 4.10.84 2.8.6 4.10.85 2.8.7 4.10.86 2.8.8 4.10.87 2.8.9 4.10.88 2.9.0 4.10.89 2.9.1 4.10.9 2.9.2 4.10.90 2.9.3 4.11.0 2.9.4 4.11.1 2.9.5 4.11.10 2.9.6 4.11.11 2.9.7 4.11.12 2.9.8 4.11.13 2.9.9 4.11.14 3.0.0 4.11.15 3.0.1 4.11.16 3.0.2 4.11.17 3.0.3 4.11.18 3.0.4 4.11.19 3.0.5 4.11.2 3.0.6 4.11.20 3.0.7 4.11.21 3.0.8 4.11.22 3.0.9 4.11.23 3.1.0 4.11.24 3.1.1 4.11.25 3.1.2 4.11.26 3.1.3 4.11.27 3.1.4 4.11.28 3.1.5 4.11.29 3.1.6 4.11.3 3.1.7 4.11.30 3.1.8 4.11.31 3.1.9 4.11.32 3.10.0 4.11.33 3.10.1 4.11.34 3.10.2 4.11.35 3.10.3 4.11.36 3.10.4 4.11.37 3.10.5 4.11.38 3.10.6 4.11.39 3.10.7 4.11.4 3.10.8 4.11.40 3.10.9 4.11.41 3.11.0 4.11.42 3.11.1 4.11.43 3.11.2 4.11.44 3.11.3 4.11.45 3.11.4 4.11.46 3.11.5 4.11.47 3.11.6 4.11.48 3.11.7 4.11.49 3.11.8 4.11.5 3.11.9 4.11.50 3.12.0 4.11.51 3.12.1 4.11.52 3.12.2 4.11.53 3.12.3 4.11.54 3.2.0 4.11.55 3.2.1 4.11.56 3.2.2 4.11.57 3.2.3 4.11.58 3.2.4 4.11.59 3.2.5 4.11.6 3.2.6 4.11.60 3.2.7 4.11.61 3.2.8 4.11.62 3.2.9 4.11.63 3.20.0 4.11.64 3.20.1 4.11.65 3.20.2 4.11.66 3.20.3 4.11.67 3.20.4 4.11.68
premium-addons-for-elementor / widgets / premium-person.php
premium-addons-for-elementor / widgets Last commit date
dep 5 years ago premium-banner.php 5 years ago premium-blog.php 5 years ago premium-button.php 5 years ago premium-carousel.php 5 years ago premium-contactform.php 5 years ago premium-countdown.php 5 years ago premium-counter.php 5 years ago premium-dual-header.php 5 years ago premium-fancytext.php 5 years ago premium-grid.php 5 years ago premium-icon-list.php 5 years ago premium-image-button.php 5 years ago premium-image-scroll.php 5 years ago premium-image-separator.php 5 years ago premium-lottie.php 5 years ago premium-maps.php 5 years ago premium-modalbox.php 5 years ago premium-person.php 5 years ago premium-pricing-table.php 5 years ago premium-progressbar.php 5 years ago premium-testimonials.php 5 years ago premium-title.php 5 years ago premium-videobox.php 5 years ago premium-vscroll.php 5 years ago
premium-person.php
2094 lines
1 <?php
2
3 /**
4 * Premium Persons.
5 */
6 namespace PremiumAddons\Widgets;
7
8 // Elementor Classes.
9 use Elementor\Widget_Base;
10 use Elementor\Utils;
11 use Elementor\Control_Media;
12 use Elementor\Controls_Manager;
13 use Elementor\Scheme_Color;
14 use Elementor\Repeater;
15 use Elementor\Scheme_Typography;
16 use Elementor\Group_Control_Image_Size;
17 use Elementor\Group_Control_Typography;
18 use Elementor\Group_Control_Css_Filter;
19 use Elementor\Group_Control_Box_Shadow;
20 use Elementor\Group_Control_Text_Shadow;
21 use Elementor\Group_Control_Border;
22
23 // PremiumAddons Classes.
24 use PremiumAddons\Includes\Helper_Functions;
25
26 if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
27
28 class Premium_Person extends Widget_Base {
29
30 public function get_name() {
31 return 'premium-addon-person';
32 }
33
34 public function get_title() {
35 return sprintf( '%1$s %2$s', Helper_Functions::get_prefix(), __('Team Members', 'premium-addons-for-elementor') );
36 }
37
38 public function get_icon() {
39 return 'pa-person';
40 }
41
42 public function get_style_depends() {
43 return [
44 // 'font-awesome',
45 'premium-addons'
46 ];
47 }
48
49 public function get_script_depends() {
50 return [
51 'imagesloaded',
52 'jquery-slick',
53 'premium-addons'
54 ];
55 }
56
57 public function get_categories() {
58 return [ 'premium-elements' ];
59 }
60
61 public function get_keywords() {
62 return ['person'];
63 }
64
65 public function get_custom_help_url() {
66 return 'https://premiumaddons.com/support/';
67 }
68
69 /**
70 * Register Persons controls.
71 *
72 * @since 1.0.0
73 * @access protected
74 */
75 protected function _register_controls() {
76
77 $this->start_controls_section('premium_person_general_settings',
78 [
79 'label' => __('General Settings', 'premium-addons-for-elementor')
80 ]
81 );
82
83 $this->add_control('phone_notice',
84 [
85 'raw' => __( 'Please note that Phone Number icon will show only on mobile devices.', 'premium-addons-for-elementor' ),
86 'type' => Controls_Manager::RAW_HTML,
87 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
88 ]
89 );
90
91 $this->add_control('multiple',
92 [
93 'label' => __( 'Multiple Member', 'premium-addons-for-elementor' ),
94 'description' => __('Enable this option if you need to add multiple persons', 'premium-addons-for-elementor'),
95 'type' => Controls_Manager::SWITCHER,
96 ]
97 );
98
99 $this->add_control('premium_person_style',
100 [
101 'label' => __('Style', 'premium-addons-for-elementor'),
102 'type' => Controls_Manager::SELECT,
103 'default' => 'style1',
104 'options' => [
105 'style1' => __('Style 1', 'premium-addons-for-elementor'),
106 'style2' => __('Style 2', 'premium-addons-for-elementor'),
107 'style3' => __('Style 3', 'premium-addons-for-elementor')
108 ],
109 'label_block' => true,
110 'render_type' => 'template'
111 ]
112 );
113
114 $this->add_control('title_rotate',
115 [
116 'label' => __('Title Rotate', 'premium-addons-for-elementor'),
117 'type' => Controls_Manager::SELECT,
118 'options' => [
119 'cw' => __('90 Degrees', 'premium-addons-for-elementor'),
120 'ccw' => __('-90 Degrees', 'premium-addons-for-elementor'),
121 ],
122 'selectors_dictionary' => [
123 'cw' => '90deg',
124 'ccw' => '-90deg',
125 ],
126 'default' => 'cw',
127 'prefix_class' => 'premium-persons-title-',
128 'label_block' => true,
129 'condition' => [
130 'premium_person_style' => 'style3'
131 ]
132 ]
133 );
134
135 $this->add_group_control(
136 Group_Control_Image_Size::get_type(),
137 [
138 'name' => 'thumbnail',
139 'default' => 'full',
140 'separator' => 'none',
141 ]
142 );
143
144 $this->add_responsive_control('premium_person_image_width',
145 [
146 'label' => __('Width', 'premium-addons-for-elementor'),
147 'type' => Controls_Manager::SLIDER,
148 'description' => __('Enter image width in (PX, EM, %), default is 100%', 'premium-addons-for-elementor'),
149 'size_units' => ['px', 'em', '%'],
150 'range' => [
151 'px' => [
152 'min' => 1,
153 'max' => 800,
154 ],
155 'em' => [
156 'min' => 1,
157 'max' => 50,
158 ],
159 ],
160 'default' => [
161 'unit' => '%',
162 'size' => '100',
163 ],
164 'label_block' => true,
165 'selectors' => [
166 '{{WRAPPER}} .premium-persons-container' => 'width: {{SIZE}}{{UNIT}};',
167 ]
168 ]
169 );
170
171 $this->add_responsive_control('premium_person_align',
172 [
173 'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
174 'type' => Controls_Manager::CHOOSE,
175 'options' => [
176 'flex-start' => [
177 'title'=> __( 'Left', 'premium-addons-for-elementor' ),
178 'icon' => 'fa fa-align-left',
179 ],
180 'center' => [
181 'title'=> __( 'Center', 'premium-addons-for-elementor' ),
182 'icon' => 'fa fa-align-center',
183 ],
184 'flex-end' => [
185 'title'=> __( 'Right', 'premium-addons-for-elementor' ),
186 'icon' => 'fa fa-align-right',
187 ],
188 ],
189 'default' => 'center',
190 'selectors' => [
191 '{{WRAPPER}} .elementor-widget-container' => 'justify-content: {{VALUE}};',
192 ],
193 ]
194 );
195
196 $this->add_control('premium_person_hover_image_effect',
197 [
198 'label' => __('Hover Effect', 'premium-addons-for-elementor'),
199 'type' => Controls_Manager::SELECT,
200 'options' => [
201 'none' => __('None', 'premium-addons-for-elementor'),
202 'zoomin' => __('Zoom In', 'premium-addons-for-elementor'),
203 'zoomout' => __('Zoom Out', 'premium-addons-for-elementor'),
204 'scale' => __('Scale', 'premium-addons-for-elementor'),
205 'grayscale' => __('Grayscale', 'premium-addons-for-elementor'),
206 'blur' => __('Blur', 'premium-addons-for-elementor'),
207 'bright' => __('Bright', 'premium-addons-for-elementor'),
208 'sepia' => __('Sepia', 'premium-addons-for-elementor'),
209 'trans' => __('Translate', 'premium-addons-for-elementor'),
210 ],
211 'default' => 'zoomin',
212 'label_block' => true
213 ]
214 );
215
216 $this->add_responsive_control('premium_person_text_align',
217 [
218 'label' => __( 'Content Alignment', 'premium-addons-for-elementor' ),
219 'type' => Controls_Manager::CHOOSE,
220 'options' => [
221 'left' => [
222 'title'=> __( 'Left', 'premium-addons-for-elementor' ),
223 'icon' => 'fa fa-align-left',
224 ],
225 'center' => [
226 'title'=> __( 'Center', 'premium-addons-for-elementor' ),
227 'icon' => 'fa fa-align-center',
228 ],
229 'right' => [
230 'title'=> __( 'Right', 'premium-addons-for-elementor' ),
231 'icon' => 'fa fa-align-right',
232 ],
233 ],
234 'default' => 'left',
235 'selectors' => [
236 '{{WRAPPER}} .premium-person-info' => 'text-align: {{VALUE}};',
237 ],
238 ]
239 );
240
241 $this->add_control('premium_person_name_heading',
242 [
243 'label' => __('Name Tag', 'premium-addons-for-elementor'),
244 'type' => Controls_Manager::SELECT,
245 'default' => 'h2',
246 'options' => [
247 'h1' => 'H1',
248 'h2' => 'H2',
249 'h3' => 'H3',
250 'h4' => 'H4',
251 'h5' => 'H5',
252 'h6' => 'H6',
253 'div' => 'div',
254 'span' => 'span',
255 'p' => 'p',
256 ],
257 'label_block' => true,
258 ]
259 );
260
261 $this->add_control('premium_person_title_heading',
262 [
263 'label' => __('Title Tag', 'premium-addons-for-elementor'),
264 'type' => Controls_Manager::SELECT,
265 'default' => 'h4',
266 'options' => [
267 'h1' => 'H1',
268 'h2' => 'H2',
269 'h3' => 'H3',
270 'h4' => 'H4',
271 'h5' => 'H5',
272 'h6' => 'H6',
273 'div' => 'div',
274 'span' => 'span',
275 'p' => 'p',
276 ],
277 'label_block' => true,
278 ]
279 );
280
281 $this->add_responsive_control('persons_per_row',
282 [
283 'label' => __('Members/Row', 'premium-addons-for-elementor'),
284 'type' => Controls_Manager::SELECT,
285 'options' => [
286 '100%' => __('1 Column', 'premium-addons-for-elementor'),
287 '50%' => __('2 Columns', 'premium-addons-for-elementor'),
288 '33.33%'=> __('3 Columns', 'premium-addons-for-elementor'),
289 '25%' => __('4 Columns', 'premium-addons-for-elementor'),
290 '20%' => __('5 Columns', 'premium-addons-for-elementor'),
291 '16.667%'=> __('6 Columns', 'premium-addons-for-elementor'),
292 ],
293 'default' => '33.33%',
294 'tablet_default' => '100%',
295 'mobile_default' => '100%',
296 'render_type' => 'template',
297 'selectors' => [
298 '{{WRAPPER}} .premium-person-container' => 'width: {{VALUE}}'
299 ],
300 'condition' => [
301 'multiple' => 'yes'
302 ]
303 ]
304 );
305
306 $this->add_responsive_control('spacing',
307 [
308 'label' => __('Spacing', 'premium-addons-for-elementor'),
309 'type' => Controls_Manager::DIMENSIONS,
310 'size_units' => ['px', '%', "em"],
311 'default' => [
312 'top' => 5,
313 'right' => 5,
314 'bottom'=> 5,
315 'left' => 5
316 ],
317 'condition' => [
318 'multiple' => 'yes'
319 ],
320 'selectors' => [
321 '{{WRAPPER}} .premium-person-container' => 'padding: 0 {{RIGHT}}{{UNIT}} 0 {{LEFT}}{{UNIT}}; margin: {{TOP}}{{UNIT}} 0 {{BOTTOM}}{{UNIT}} 0',
322 ' {{WRAPPER}} .premium-person-style1 .premium-person-info' => 'left: {{LEFT}}{{UNIT}}; right: {{RIGHT}}{{UNIT}}'
323 ]
324 ]
325 );
326
327 $this->add_control('multiple_equal_height',
328 [
329 'label' => __( 'Equal Height', 'premium-addons-for-elementor' ),
330 'type' => Controls_Manager::SWITCHER,
331 'default' => 'yes',
332 'condition' => [
333 'multiple' => 'yes'
334 ],
335 ]
336 );
337
338 $this->end_controls_section();
339
340 $this->start_controls_section('premium_person_settings',
341 [
342 'label' => __('Single Member Settings', 'premium-addons-for-elementor'),
343 'condition' => [
344 'multiple!' => 'yes'
345 ]
346 ]
347 );
348
349 $this->add_control('premium_person_image',
350 [
351 'label' => __('Image', 'premium-addons-for-elementor'),
352 'type' => Controls_Manager::MEDIA,
353 'dynamic' => [ 'active' => true ],
354 'default' => [
355 'url' => Utils::get_placeholder_image_src()
356 ],
357 'label_block' => true
358 ]
359 );
360
361 $this->add_control('premium_person_name',
362 [
363 'label' => __('Name', 'premium-addons-for-elementor'),
364 'type' => Controls_Manager::TEXT,
365 'dynamic' => [ 'active' => true ],
366 'default' => 'John Frank',
367 'separator' => 'before',
368 'label_block' => true,
369 ]
370 );
371
372 $this->add_control('premium_person_title',
373 [
374 'label' => __('Title', 'premium-addons-for-elementor'),
375 'type' => Controls_Manager::TEXT,
376 'dynamic' => [ 'active' => true ],
377 'default' => __('Developer', 'premium-addons-for-elementor'),
378 'label_block' => true,
379 ]
380 );
381
382 $this->add_control('premium_person_content',
383 [
384 'label' => __('Description', 'premium-addons-for-elementor'),
385 'type' => Controls_Manager::WYSIWYG,
386 'dynamic' => [ 'active' => true ],
387 'default' => __('Lorem ipsum dolor sit amet, consectetur adipiscing elit','premium-addons-for-elementor'),
388 ]
389 );
390
391 $this->add_control('premium_person_social_enable',
392 [
393 'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ),
394 'type' => Controls_Manager::SWITCHER,
395 'default' => 'yes',
396 'separator' => 'before'
397 ]
398 );
399
400 $this->add_control('premium_person_facebook',
401 [
402 'label' => __('Facebook', 'premium-addons-for-elementor'),
403 'type' => Controls_Manager::TEXT,
404 'dynamic' => [ 'active' => true ],
405 'default' => '#',
406 'label_block' => true,
407 'condition' => [
408 'premium_person_social_enable' => 'yes'
409 ]
410 ]
411 );
412
413 $this->add_control('premium_person_twitter',
414 [
415 'label' => __('Twitter', 'premium-addons-for-elementor'),
416 'type' => Controls_Manager::TEXT,
417 'dynamic' => [ 'active' => true ],
418 'default' => '#',
419 'label_block' => true,
420 'condition' => [
421 'premium_person_social_enable' => 'yes'
422 ]
423 ]
424 );
425
426 $this->add_control('premium_person_linkedin',
427 [
428 'label' => __('LinkedIn', 'premium-addons-for-elementor'),
429 'type' => Controls_Manager::TEXT,
430 'dynamic' => [ 'active' => true ],
431 'label_block' => true,
432 'condition' => [
433 'premium_person_social_enable' => 'yes'
434 ]
435 ]
436 );
437
438 $this->add_control('premium_person_google',
439 [
440 'label' => __('Google+', 'premium-addons-for-elementor'),
441 'type' => Controls_Manager::TEXT,
442 'dynamic' => [ 'active' => true ],
443 'label_block' => true,
444 'condition' => [
445 'premium_person_social_enable' => 'yes'
446 ]
447 ]
448 );
449
450 $this->add_control('premium_person_youtube',
451 [
452 'label' => __('YouTube', 'premium-addons-for-elementor'),
453 'type' => Controls_Manager::TEXT,
454 'dynamic' => [ 'active' => true ],
455 'label_block' => true,
456 'condition' => [
457 'premium_person_social_enable' => 'yes'
458 ]
459 ]
460 );
461
462 $this->add_control('premium_person_instagram',
463 [
464 'label' => __('Instagram', 'premium-addons-for-elementor'),
465 'type' => Controls_Manager::TEXT,
466 'dynamic' => [ 'active' => true ],
467 'default' => '#',
468 'label_block' => true,
469 'condition' => [
470 'premium_person_social_enable' => 'yes'
471 ]
472 ]
473 );
474
475 $this->add_control('premium_person_skype',
476 [
477 'label' => __('Skype', 'premium-addons-for-elementor'),
478 'type' => Controls_Manager::TEXT,
479 'dynamic' => [ 'active' => true ],
480 'label_block' => true,
481 'condition' => [
482 'premium_person_social_enable' => 'yes'
483 ]
484 ]
485 );
486
487 $this->add_control('premium_person_pinterest',
488 [
489 'label' => __('Pinterest', 'premium-addons-for-elementor'),
490 'type' => Controls_Manager::TEXT,
491 'dynamic' => [ 'active' => true ],
492 'label_block' => true,
493 'condition' => [
494 'premium_person_social_enable' => 'yes'
495 ]
496 ]
497 );
498
499 $this->add_control('premium_person_dribbble',
500 [
501 'label' => __('Dribbble', 'premium-addons-for-elementor'),
502 'type' => Controls_Manager::TEXT,
503 'dynamic' => [ 'active' => true ],
504 'default' => '#',
505 'label_block' => true,
506 'condition' => [
507 'premium_person_social_enable' => 'yes'
508 ]
509 ]
510 );
511
512 $this->add_control('premium_person_behance',
513 [
514 'label' => __('Behance', 'premium-addons-for-elementor'),
515 'type' => Controls_Manager::TEXT,
516 'dynamic' => [ 'active' => true ],
517 'label_block' => true,
518 'condition' => [
519 'premium_person_social_enable' => 'yes'
520 ]
521 ]
522 );
523
524 $this->add_control('premium_person_whatsapp',
525 [
526 'label' => __('WhatsApp', 'premium-addons-for-elementor'),
527 'type' => Controls_Manager::TEXT,
528 'dynamic' => [ 'active' => true ],
529 'label_block' => true,
530 'condition' => [
531 'premium_person_social_enable' => 'yes'
532 ]
533 ]
534 );
535
536 $this->add_control('premium_person_telegram',
537 [
538 'label' => __('Telegram', 'premium-addons-for-elementor'),
539 'type' => Controls_Manager::TEXT,
540 'dynamic' => [ 'active' => true ],
541 'label_block' => true,
542 'condition' => [
543 'premium_person_social_enable' => 'yes'
544 ]
545 ]
546 );
547
548 $this->add_control('premium_person_mail',
549 [
550 'label' => __('Email Address', 'premium-addons-for-elementor'),
551 'type' => Controls_Manager::TEXT,
552 'dynamic' => [ 'active' => true ],
553 'label_block' => true,
554 'condition' => [
555 'premium_person_social_enable' => 'yes'
556 ]
557 ]
558 );
559
560 $this->add_control('premium_person_site',
561 [
562 'label' => __('Website', 'premium-addons-for-elementor'),
563 'type' => Controls_Manager::TEXT,
564 'dynamic' => [ 'active' => true ],
565 'label_block' => true,
566 'condition' => [
567 'premium_person_social_enable' => 'yes'
568 ]
569 ]
570 );
571
572 $this->add_control('premium_person_number',
573 [
574 'label' => __('Phone Number', 'premium-addons-for-elementor'),
575 'type' => Controls_Manager::TEXT,
576 'dynamic' => [ 'active' => true ],
577 'description' => __('Example: tel: +012 345 678 910', 'premium-addons-for-elementor'),
578 'label_block' => true,
579 'condition' => [
580 'premium_person_social_enable' => 'yes'
581 ]
582 ]
583 );
584
585 $this->end_controls_section();
586
587
588 $this->start_controls_section('multiple_settings',
589 [
590 'label' => __('Multiple Members Settings', 'premium-addons-for-elementor'),
591 'condition' => [
592 'multiple' => 'yes'
593 ]
594 ]
595 );
596
597 $repeater = new REPEATER();
598
599 $repeater->add_control( 'multiple_image',
600 [
601 'label' => __( 'Image', 'premium-addons-for-elementor' ),
602 'type' => Controls_Manager::MEDIA,
603 'dynamic' => [ 'active' => true ],
604 'default' => [
605 'url' => Utils::get_placeholder_image_src(),
606 ],
607 ]
608 );
609
610 $repeater->add_control('multiple_name',
611 [
612 'label' => __('Name', 'premium-addons-for-elementor'),
613 'type' => Controls_Manager::TEXT,
614 'dynamic' => [ 'active' => true ],
615 'default' => 'John Frank',
616 'separator' => 'before',
617 'label_block' => true,
618 ]
619 );
620
621 $repeater->add_control('multiple_title',
622 [
623 'label' => __('Title', 'premium-addons-for-elementor'),
624 'type' => Controls_Manager::TEXT,
625 'dynamic' => [ 'active' => true ],
626 'default' => __('Developer', 'premium-addons-for-elementor'),
627 'label_block' => true,
628 ]
629 );
630
631 $repeater->add_control('multiple_description',
632 [
633 'label' => __('Description', 'premium-addons-for-elementor'),
634 'type' => Controls_Manager::WYSIWYG,
635 'dynamic' => [ 'active' => true ],
636 'default' => __('Lorem ipsum dolor sit amet, consectetur adipiscing elit','premium-addons-for-elementor'),
637 ]
638 );
639
640 $repeater->add_control('multiple_social_enable',
641 [
642 'label' => __( 'Enable Social Icons', 'premium-addons-for-elementor' ),
643 'type' => Controls_Manager::SWITCHER,
644 'default' => 'yes',
645 'separator' => 'before'
646 ]
647 );
648
649 $repeater->add_control('multiple_facebook',
650 [
651 'label' => __('Facebook', 'premium-addons-for-elementor'),
652 'type' => Controls_Manager::TEXT,
653 'dynamic' => [ 'active' => true ],
654 'default' => '#',
655 'label_block' => true,
656 'condition' => [
657 'multiple_social_enable' => 'yes'
658 ]
659 ]
660 );
661
662 $repeater->add_control('multiple_twitter',
663 [
664 'label' => __('Twitter', 'premium-addons-for-elementor'),
665 'type' => Controls_Manager::TEXT,
666 'dynamic' => [ 'active' => true ],
667 'default' => '#',
668 'label_block' => true,
669 'condition' => [
670 'multiple_social_enable' => 'yes'
671 ]
672 ]
673 );
674
675 $repeater->add_control('multiple_linkedin',
676 [
677 'label' => __('LinkedIn', 'premium-addons-for-elementor'),
678 'type' => Controls_Manager::TEXT,
679 'dynamic' => [ 'active' => true ],
680 'label_block' => true,
681 'condition' => [
682 'multiple_social_enable' => 'yes'
683 ]
684 ]
685 );
686
687 $repeater->add_control('multiple_google',
688 [
689 'label' => __('Google+', 'premium-addons-for-elementor'),
690 'type' => Controls_Manager::TEXT,
691 'dynamic' => [ 'active' => true ],
692 'label_block' => true,
693 'condition' => [
694 'multiple_social_enable' => 'yes'
695 ]
696 ]
697 );
698
699 $repeater->add_control('multiple_youtube',
700 [
701 'label' => __('YouTube', 'premium-addons-for-elementor'),
702 'type' => Controls_Manager::TEXT,
703 'dynamic' => [ 'active' => true ],
704 'label_block' => true,
705 'condition' => [
706 'multiple_social_enable' => 'yes'
707 ]
708 ]
709 );
710
711 $repeater->add_control('multiple_instagram',
712 [
713 'label' => __('Instagram', 'premium-addons-for-elementor'),
714 'type' => Controls_Manager::TEXT,
715 'dynamic' => [ 'active' => true ],
716 'default' => '#',
717 'label_block' => true,
718 'condition' => [
719 'multiple_social_enable' => 'yes'
720 ]
721 ]
722 );
723
724 $repeater->add_control('multiple_skype',
725 [
726 'label' => __('Skype', 'premium-addons-for-elementor'),
727 'type' => Controls_Manager::TEXT,
728 'dynamic' => [ 'active' => true ],
729 'label_block' => true,
730 'condition' => [
731 'multiple_social_enable' => 'yes'
732 ]
733 ]
734 );
735
736 $repeater->add_control('multiple_pinterest',
737 [
738 'label' => __('Pinterest', 'premium-addons-for-elementor'),
739 'type' => Controls_Manager::TEXT,
740 'dynamic' => [ 'active' => true ],
741 'label_block' => true,
742 'condition' => [
743 'multiple_social_enable' => 'yes'
744 ]
745 ]
746 );
747
748 $repeater->add_control('multiple_dribbble',
749 [
750 'label' => __('Dribbble', 'premium-addons-for-elementor'),
751 'type' => Controls_Manager::TEXT,
752 'dynamic' => [ 'active' => true ],
753 'default' => '#',
754 'label_block' => true,
755 'condition' => [
756 'multiple_social_enable' => 'yes'
757 ]
758 ]
759 );
760
761 $repeater->add_control('multiple_behance',
762 [
763 'label' => __('Behance', 'premium-addons-for-elementor'),
764 'type' => Controls_Manager::TEXT,
765 'dynamic' => [ 'active' => true ],
766 'label_block' => true,
767 'condition' => [
768 'multiple_social_enable' => 'yes'
769 ]
770 ]
771 );
772
773 $repeater->add_control('multiple_whatsapp',
774 [
775 'label' => __('WhatsApp', 'premium-addons-for-elementor'),
776 'type' => Controls_Manager::TEXT,
777 'dynamic' => [ 'active' => true ],
778 'label_block' => true,
779 'condition' => [
780 'multiple_social_enable' => 'yes'
781 ]
782 ]
783 );
784
785 $repeater->add_control('multiple_telegram',
786 [
787 'label' => __('Telegram', 'premium-addons-for-elementor'),
788 'type' => Controls_Manager::TEXT,
789 'dynamic' => [ 'active' => true ],
790 'label_block' => true,
791 'condition' => [
792 'multiple_social_enable' => 'yes'
793 ]
794 ]
795 );
796
797 $repeater->add_control('multiple_mail',
798 [
799 'label' => __('Email Address', 'premium-addons-for-elementor'),
800 'type' => Controls_Manager::TEXT,
801 'dynamic' => [ 'active' => true ],
802 'label_block' => true,
803 'condition' => [
804 'multiple_social_enable' => 'yes'
805 ]
806 ]
807 );
808
809 $repeater->add_control('multiple_site',
810 [
811 'label' => __('Website', 'premium-addons-for-elementor'),
812 'type' => Controls_Manager::TEXT,
813 'dynamic' => [ 'active' => true ],
814 'label_block' => true,
815 'condition' => [
816 'multiple_social_enable' => 'yes'
817 ]
818 ]
819 );
820
821 $repeater->add_control('multiple_number',
822 [
823 'label' => __('Phone Number', 'premium-addons-for-elementor'),
824 'type' => Controls_Manager::TEXT,
825 'dynamic' => [ 'active' => true ],
826 'description' => __('Example: tel: +012 345 678 910', 'premium-addons-for-elementor'),
827 'label_block' => true,
828 'condition' => [
829 'multiple_social_enable' => 'yes'
830 ]
831 ]
832 );
833
834 $this->add_control('multiple_persons',
835 [
836 'label' => __( 'Members', 'premium-addons-for-elementor' ),
837 'type' => Controls_Manager::REPEATER,
838 'default' => [
839 [
840 'multiple_name' => 'John Frank'
841 ],
842 [
843 'multiple_name' => 'John Frank'
844 ],
845 [
846 'multiple_name' => 'John Frank'
847 ]
848 ],
849 'fields' => $repeater->get_controls(),
850 'title_field' => '{{{multiple_name}}} - {{{multiple_title}}}',
851 'prevent_empty' => false
852 ]
853 );
854
855 $this->add_control('carousel',
856 [
857 'label' => __('Carousel', 'premium-addons-for-elementor'),
858 'type' => Controls_Manager::SWITCHER
859 ]
860 );
861
862 $this->add_control('carousel_play',
863 [
864 'label' => __('Auto Play', 'premium-addons-for-elementor'),
865 'type' => Controls_Manager::SWITCHER,
866 'condition' => [
867 'carousel' => 'yes'
868 ]
869 ]
870 );
871
872 $this->add_control('carousel_autoplay_speed',
873 [
874 'label' => __( 'Autoplay Speed', 'premium-addons-for-elementor' ),
875 'description' => __( 'Autoplay Speed means at which time the next slide should come. Set a value in milliseconds (ms)', 'premium-addons-for-elementor' ),
876 'type' => Controls_Manager::NUMBER,
877 'default' => 5000,
878 'condition' => [
879 'carousel' => 'yes',
880 'carousel_play' => 'yes',
881 ],
882 ]
883 );
884
885 $this->add_responsive_control('carousel_arrows_pos',
886 [
887 'label' => __('Arrows Position', 'premium-addons-for-elementor'),
888 'type' => Controls_Manager::SLIDER,
889 'size_units' => ['px', "em"],
890 'range' => [
891 'px' => [
892 'min' => -100,
893 'max' => 100,
894 ],
895 'em' => [
896 'min' => -10,
897 'max' => 10,
898 ],
899 ],
900 'condition' => [
901 'carousel' => 'yes'
902 ],
903 'selectors' => [
904 '{{WRAPPER}} .premium-persons-container a.carousel-arrow.carousel-next' => 'right: {{SIZE}}{{UNIT}};',
905 '{{WRAPPER}} .premium-persons-container a.carousel-arrow.carousel-prev' => 'left: {{SIZE}}{{UNIT}};',
906 ]
907 ]
908 );
909
910 $this->end_controls_section();
911
912 $this->start_controls_section('section_pa_docs',
913 [
914 'label' => __('Helpful Documentations', 'premium-addons-for-elementor'),
915 ]
916 );
917
918 $doc1_url = Helper_Functions::get_campaign_link( 'https://premiumaddons.com/docs/why-im-not-able-to-see-elementor-font-awesome-5-icons-in-premium-add-ons', 'editor-page', 'wp-editor', 'get-support' );
919
920 $this->add_control('doc_1',
921 [
922 'type' => Controls_Manager::RAW_HTML,
923 'raw' => sprintf( __( '%1$s I\'m not able to see Font Awesome icons in the widget » %2$s', 'premium-addons-for-elementor' ), '<a href="https://premiumaddons.com/docs/why-im-not-able-to-see-elementor-font-awesome-5-icons-in-premium-add-ons/?utm_source=papro-dashboard&utm_medium=papro-editor&utm_campaign=papro-plugin" target="_blank" rel="noopener">', '</a>' ),
924 'content_classes' => 'editor-pa-doc',
925 ]
926 );
927
928 $this->end_controls_section();
929
930 $this->start_controls_section('premium_person_image_style',
931 [
932 'label' => __('Image', 'premium-addons-for-elementor'),
933 'tab' => Controls_Manager::TAB_STYLE,
934 ]
935 );
936
937 $this->add_group_control(
938 Group_Control_Css_Filter::get_type(),
939 [
940 'name' => 'css_filters',
941 'selector' => '{{WRAPPER}} .premium-person-container img',
942 ]
943 );
944
945 $this->add_group_control(
946 Group_Control_Css_Filter::get_type(),
947 [
948 'name' => 'hover_css_filters',
949 'label' => __('Hover CSS Filters', 'premium-addons-for-elementor'),
950 'selector' => '{{WRAPPER}} .premium-person-container:hover img'
951 ]
952 );
953
954 $this->add_group_control(
955 Group_Control_Box_Shadow::get_type(),
956 [
957 'name' => 'premium_person_shadow',
958 'selector' => '{{WRAPPER}} .premium-person-social',
959 'condition' => [
960 'premium_person_style' => 'style2'
961 ]
962 ]
963 );
964
965 $this->add_control('blend_mode',
966 [
967 'label' => __( 'Blend Mode', 'elementor' ),
968 'type' => Controls_Manager::SELECT,
969 'options' => [
970 '' => __( 'Normal', 'elementor' ),
971 'multiply' => 'Multiply',
972 'screen' => 'Screen',
973 'overlay' => 'Overlay',
974 'darken' => 'Darken',
975 'lighten' => 'Lighten',
976 'color-dodge' => 'Color Dodge',
977 'saturation' => 'Saturation',
978 'color' => 'Color',
979 'luminosity' => 'Luminosity',
980 ],
981 'separator' => 'before',
982 'selectors' => [
983 '{{WRAPPER}} .premium-person-image-container img' => 'mix-blend-mode: {{VALUE}}',
984 ],
985 ]
986 );
987
988 $this->end_controls_section();
989
990 $this->start_controls_section('premium_person_name_style',
991 [
992 'label' => __('Name', 'premium-addons-for-elementor'),
993 'tab' => Controls_Manager::TAB_STYLE,
994 ]
995 );
996
997 $this->add_control('premium_person_name_color',
998 [
999 'label' => __('Color', 'premium-addons-for-elementor'),
1000 'type' => Controls_Manager::COLOR,
1001 'scheme' => [
1002 'type' => Scheme_Color::get_type(),
1003 'value' => Scheme_Color::COLOR_1,
1004 ],
1005 'selectors' => [
1006 '{{WRAPPER}} .premium-person-name' => 'color: {{VALUE}};',
1007 ]
1008 ]
1009 );
1010
1011 $this->add_group_control(
1012 Group_Control_Typography::get_type(),
1013 [
1014 'name' => 'name_typography',
1015 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1016 'selector' => '{{WRAPPER}} .premium-person-name',
1017 ]
1018 );
1019
1020 $this->add_group_control(
1021 Group_Control_Text_Shadow::get_type(),
1022 [
1023 'name' => 'name_shadow',
1024 'selector' => '{{WRAPPER}} .premium-person-name',
1025 ]
1026 );
1027
1028 $this->add_responsive_control('name_padding',
1029 [
1030 'label' => __('Padding', 'premium-addons-for-elementor'),
1031 'type' => Controls_Manager::DIMENSIONS,
1032 'size_units' => ['px', 'em', '%'],
1033 'selectors' => [
1034 '{{WRAPPER}} .premium-person-name' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1035 ]
1036 ]
1037 );
1038
1039 $this->end_controls_section();
1040
1041 $this->start_controls_section('premium_person_title_style',
1042 [
1043 'label' => __('Job Title', 'premium-addons-for-elementor'),
1044 'tab' => Controls_Manager::TAB_STYLE,
1045 ]
1046 );
1047
1048 $this->add_control('premium_person_title_color',
1049 [
1050 'label' => __('Color', 'premium-addons-for-elementor'),
1051 'type' => Controls_Manager::COLOR,
1052 'scheme' => [
1053 'type' => Scheme_Color::get_type(),
1054 'value' => Scheme_Color::COLOR_2,
1055 ],
1056 'selectors' => [
1057 '{{WRAPPER}} .premium-person-title' => 'color: {{VALUE}};',
1058 ]
1059 ]
1060 );
1061
1062 $this->add_group_control(
1063 Group_Control_Typography::get_type(),
1064 [
1065 'name' => 'title_typography',
1066 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1067 'selector' => '{{WRAPPER}} .premium-person-title',
1068 ]
1069 );
1070
1071 $this->add_group_control(
1072 Group_Control_Text_Shadow::get_type(),
1073 [
1074 'name' => 'title_shadow',
1075 'selector' => '{{WRAPPER}} .premium-person-title',
1076 ]
1077 );
1078
1079 $this->add_responsive_control('title_margin',
1080 [
1081 'label' => __('Margin', 'premium-addons-for-elementor'),
1082 'type' => Controls_Manager::DIMENSIONS,
1083 'size_units' => ['px', 'em', '%'],
1084 'selectors' => [
1085 '{{WRAPPER}} .premium-person-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1086 ]
1087 ]
1088 );
1089
1090 $this->add_responsive_control('title_padding',
1091 [
1092 'label' => __('Padding', 'premium-addons-for-elementor'),
1093 'type' => Controls_Manager::DIMENSIONS,
1094 'size_units' => ['px', 'em', '%'],
1095 'selectors' => [
1096 '{{WRAPPER}} .premium-person-title' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1097 ]
1098 ]
1099 );
1100
1101 $this->end_controls_section();
1102
1103 $this->start_controls_section('premium_person_description_style',
1104 [
1105 'label' => __('Description', 'premium-addons-for-elementor'),
1106 'tab' => Controls_Manager::TAB_STYLE,
1107 ]
1108 );
1109
1110 $this->add_control('premium_person_description_color',
1111 [
1112 'label' => __('Color', 'premium-addons-for-elementor'),
1113 'type' => Controls_Manager::COLOR,
1114 'scheme' => [
1115 'type' => Scheme_Color::get_type(),
1116 'value' => Scheme_Color::COLOR_3,
1117 ],
1118 'selectors' => [
1119 '{{WRAPPER}} .premium-person-content' => 'color: {{VALUE}};',
1120 ]
1121 ]
1122 );
1123
1124 $this->add_group_control(
1125 Group_Control_Typography::get_type(),
1126 [
1127 'name' => 'description_typography',
1128 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1129 'selector' => '{{WRAPPER}} .premium-person-content',
1130 ]
1131 );
1132
1133 $this->add_group_control(
1134 Group_Control_Text_Shadow::get_type(),
1135 [
1136 'name' => 'description_shadow',
1137 'selector' => '{{WRAPPER}} .premium-person-content',
1138 ]
1139 );
1140
1141 $this->add_responsive_control('description_padding',
1142 [
1143 'label' => __('Padding', 'premium-addons-for-elementor'),
1144 'type' => Controls_Manager::DIMENSIONS,
1145 'size_units' => ['px', 'em', '%'],
1146 'selectors' => [
1147 '{{WRAPPER}} .premium-person-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1148 ]
1149 ]
1150 );
1151
1152 $this->end_controls_section();
1153
1154 $this->start_controls_section('premium_person_social_icon_style',
1155 [
1156 'label' => __('Social Icons', 'premium-addons-for-elementor'),
1157 'tab' => Controls_Manager::TAB_STYLE,
1158 'condition' => [
1159 'premium_person_social_enable' => 'yes'
1160 ]
1161 ]
1162 );
1163
1164 $this->add_responsive_control('premium_person_social_size',
1165 [
1166 'label' => __('Size', 'premium-addons-for-elementor'),
1167 'type' => Controls_Manager::SLIDER,
1168 'size_units' => ['px', 'em', '%'],
1169 'label_block' => true,
1170 'selectors' => [
1171 '{{WRAPPER}} .premium-person-list-item i' => 'font-size: {{SIZE}}{{UNIT}};',
1172 ]
1173 ]
1174 );
1175
1176 $this->add_control('premium_person_social_color',
1177 [
1178 'label' => __('Color', 'premium-addons-for-elementor'),
1179 'type' => Controls_Manager::COLOR,
1180 'scheme' => [
1181 'type' => Scheme_Color::get_type(),
1182 'value' => Scheme_Color::COLOR_1,
1183 ],
1184 'selectors' => [
1185 '{{WRAPPER}} .premium-person-list-item i' => 'color: {{VALUE}};',
1186 ]
1187 ]
1188 );
1189
1190 $this->add_control('premium_person_social_hover_color',
1191 [
1192 'label' => __('Hover Color', 'premium-addons-for-elementor'),
1193 'type' => Controls_Manager::COLOR,
1194 'scheme' => [
1195 'type' => Scheme_Color::get_type(),
1196 'value' => Scheme_Color::COLOR_2,
1197 ],
1198 'selectors' => [
1199 '{{WRAPPER}} .premium-person-list-item:hover i' => 'color: {{VALUE}}',
1200 ]
1201 ]
1202 );
1203
1204 $this->add_control('premium_person_social_background',
1205 [
1206 'label' => __('Background Color', 'premium-addons-for-elementor'),
1207 'type' => Controls_Manager::COLOR,
1208 'selectors' => [
1209 '{{WRAPPER}} .premium-person-list-item a' => 'background-color: {{VALUE}}',
1210 ]
1211 ]
1212 );
1213
1214 $this->add_control('premium_person_social_default_colors',
1215 [
1216 'label' => __( 'Brands Default Colors', 'premium-addons-for-elementor' ),
1217 'type' => Controls_Manager::SWITCHER,
1218 'prefix_class' => 'premium-person-defaults-'
1219 ]
1220 );
1221
1222 $this->add_control('premium_person_social_hover_background',
1223 [
1224 'label' => __('Hover Background Color', 'premium-addons-for-elementor'),
1225 'type' => Controls_Manager::COLOR,
1226 'selectors' => [
1227 '{{WRAPPER}} li.premium-person-list-item:hover a' => 'background-color: {{VALUE}}',
1228 ],
1229 'condition' => [
1230 'premium_person_social_default_colors!' => 'yes'
1231 ]
1232 ]
1233 );
1234
1235 $this->add_group_control(
1236 Group_Control_Border::get_type(),
1237 [
1238 'name' => 'premium_person_social_border',
1239 'selector' => '{{WRAPPER}} .premium-person-list-item a',
1240 ]
1241 );
1242
1243 $this->add_responsive_control('premium_person_social_radius',
1244 [
1245 'label' => __('Border Radius', 'premium-addons-for-elementor'),
1246 'type' => Controls_Manager::DIMENSIONS,
1247 'size_units' => ['px', 'em', '%'],
1248 'selectors' => [
1249 '{{WRAPPER}} .premium-person-list-item a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}'
1250 ]
1251 ]
1252 );
1253
1254 $this->add_responsive_control('premium_person_social_margin',
1255 [
1256 'label' => __('Margin', 'premium-addons-for-elementor'),
1257 'type' => Controls_Manager::DIMENSIONS,
1258 'size_units' => ['px', 'em', '%'],
1259 'selectors' => [
1260 '{{WRAPPER}} .premium-person-list-item a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1261 ]
1262 ]
1263 );
1264
1265 $this->add_responsive_control('premium_person_social_padding',
1266 [
1267 'label' => __('Padding', 'premium-addons-for-elementor'),
1268 'type' => Controls_Manager::DIMENSIONS,
1269 'size_units' => ['px', 'em', '%'],
1270 'selectors' => [
1271 '{{WRAPPER}} .premium-person-list-item a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1272 ]
1273 ]
1274 );
1275
1276 $this->end_controls_section();
1277
1278 $this->start_controls_section('premium_person_general_style',
1279 [
1280 'label' => __('Content', 'premium-addons-for-elementor'),
1281 'tab' => Controls_Manager::TAB_STYLE,
1282 ]
1283 );
1284
1285 $this->add_control('premium_person_content_background_color',
1286 [
1287 'label' => __('Background Color', 'premium-addons-for-elementor'),
1288 'type' => Controls_Manager::COLOR,
1289 'default' => 'rgba(245,245,245,0.97)',
1290 'selectors' => [
1291 '{{WRAPPER}} .premium-person-info' => 'background-color: {{VALUE}};',
1292 ]
1293 ]
1294 );
1295
1296 $this->add_responsive_control('premium_person_border_bottom_width',
1297 [
1298 'label' => __('Bottom Offset', 'premium-addons-for-elementor'),
1299 'type' => Controls_Manager::SLIDER,
1300 'size_units' => ['px', 'em', '%'],
1301 'range' => [
1302 'px' => [
1303 'min' => 0,
1304 'max' => 700,
1305 ]
1306 ],
1307 'default' => [
1308 'size' => 20,
1309 'unit' => 'px'
1310 ],
1311 'label_block' => true,
1312 'condition' => [
1313 'premium_person_style' => 'style1'
1314 ],
1315 'selectors' => [
1316 '{{WRAPPER}} .premium-person-info' => 'bottom: {{SIZE}}{{UNIT}}',
1317 ]
1318 ]
1319 );
1320
1321 $this->add_responsive_control('premium_person_content_speed',
1322 [
1323 'label' => __( 'Transition Duration (sec)', 'premium-addons-for-elementor' ),
1324 'type' => Controls_Manager::SLIDER,
1325 'range' => [
1326 'px' => [
1327 'min' => 0,
1328 'max' => 5,
1329 'step' => 0.1
1330 ]
1331 ],
1332 'selectors' => [
1333 '{{WRAPPER}} .premium-person-info, {{WRAPPER}} .premium-person-image-container img' => 'transition-duration: {{SIZE}}s',
1334 ]
1335 ]
1336 );
1337
1338 $this->add_responsive_control('premium_person_content_padding',
1339 [
1340 'label' => __('Padding', 'premium-addons-for-elementor'),
1341 'type' => Controls_Manager::DIMENSIONS,
1342 'size_units' => ['px', 'em', '%'],
1343 'selectors' => [
1344 '{{WRAPPER}} .premium-person-info-container' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
1345 ]
1346 ]
1347 );
1348
1349 $this->end_controls_section();
1350
1351 $this->start_controls_section('carousel_style',
1352 [
1353 'label' => __('Carousel', 'premium-addons-for-elementor'),
1354 'tab' => Controls_Manager::TAB_STYLE,
1355 'condition' => [
1356 'carousel' => 'yes'
1357 ]
1358 ]
1359 );
1360
1361 $this->add_control('arrow_color',
1362 [
1363 'label' => __('Color', 'premium-addons-for-elementor'),
1364 'type' => Controls_Manager::COLOR,
1365 'scheme' => [
1366 'type' => Scheme_Color::get_type(),
1367 'value' => Scheme_Color::COLOR_1,
1368 ],
1369 'selectors' => [
1370 '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'color: {{VALUE}};',
1371 ]
1372 ]
1373 );
1374
1375 $this->add_control('arrow_hover_color',
1376 [
1377 'label' => __('Hover Color', 'premium-addons-for-elementor'),
1378 'type' => Controls_Manager::COLOR,
1379 'scheme' => [
1380 'type' => Scheme_Color::get_type(),
1381 'value' => Scheme_Color::COLOR_1,
1382 ],
1383 'selectors' => [
1384 '{{WRAPPER}} .premium-persons-container .slick-arrow:hover' => 'color: {{VALUE}};',
1385 ]
1386 ]
1387 );
1388
1389 $this->add_responsive_control('arrow_size',
1390 [
1391 'label' => __('Size', 'premium-addons-for-elementor'),
1392 'type' => Controls_Manager::SLIDER,
1393 'size_units' => ['px', '%' ,'em'],
1394 'selectors' => [
1395 '{{WRAPPER}} .premium-persons-container .slick-arrow i' => 'font-size: {{SIZE}}{{UNIT}};'
1396 ]
1397 ]
1398 );
1399
1400 $this->add_control('arrow_background',
1401 [
1402 'label' => __('Background Color', 'premium-addons-for-elementor'),
1403 'type' => Controls_Manager::COLOR,
1404 'scheme' => [
1405 'type' => Scheme_Color::get_type(),
1406 'value' => Scheme_Color::COLOR_2,
1407 ],
1408 'selectors' => [
1409 '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'background-color: {{VALUE}};',
1410 ]
1411 ]
1412 );
1413
1414 $this->add_control('arrow_hover_background',
1415 [
1416 'label' => __('Background Hover Color', 'premium-addons-for-elementor'),
1417 'type' => Controls_Manager::COLOR,
1418 'scheme' => [
1419 'type' => Scheme_Color::get_type(),
1420 'value' => Scheme_Color::COLOR_2,
1421 ],
1422 'selectors' => [
1423 '{{WRAPPER}} .premium-persons-container .slick-arrow:hover' => 'background-color: {{VALUE}};',
1424 ]
1425 ]
1426 );
1427
1428 $this->add_control('arrow_border_radius',
1429 [
1430 'label' => __('Border Radius', 'premium-addons-for-elementor'),
1431 'type' => Controls_Manager::SLIDER,
1432 'size_units' => ['px', '%' ,'em'],
1433 'selectors' => [
1434 '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'border-radius: {{SIZE}}{{UNIT}};'
1435 ]
1436 ]
1437 );
1438
1439 $this->add_control('arrow_padding',
1440 [
1441 'label' => __('Padding', 'premium-addons-for-elementor'),
1442 'type' => Controls_Manager::SLIDER,
1443 'size_units' => ['px', '%' ,'em'],
1444 'selectors' => [
1445 '{{WRAPPER}} .premium-persons-container .slick-arrow' => 'padding: {{SIZE}}{{UNIT}};'
1446 ]
1447 ]
1448 );
1449
1450 $this->end_controls_section();
1451
1452 }
1453
1454 /**
1455 * Render Persons widget output on the frontend.
1456 *
1457 * Written in PHP and used to generate the final HTML.
1458 *
1459 * @since 1.0.0
1460 * @access protected
1461 */
1462 protected function render() {
1463
1464 $settings = $this->get_settings_for_display();
1465
1466 $image_effect = $settings['premium_person_hover_image_effect'];
1467
1468 $image_html = '';
1469 if ( ! empty( $settings['premium_person_image']['url'] ) ) {
1470 $this->add_render_attribute( 'image', 'src', $settings['premium_person_image']['url'] );
1471 $this->add_render_attribute( 'image', 'alt', Control_Media::get_image_alt( $settings['premium_person_image'] ) );
1472 $this->add_render_attribute( 'image', 'title', Control_Media::get_image_title( $settings['premium_person_image'] ) );
1473
1474 $image_html = Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'premium_person_image' );
1475 }
1476
1477 $this->add_render_attribute( 'persons_container', 'class', [
1478 'premium-persons-container',
1479 'premium-person-' . $settings['premium_person_style']
1480 ]
1481 );
1482
1483 $this->add_render_attribute( 'person_container', 'class', [
1484 'premium-person-container',
1485 'premium-person-' . $image_effect . '-effect'
1486 ]);
1487
1488 if( 'yes' === $settings['multiple'] ) {
1489 $persons = $settings['multiple_persons'];
1490 $this->add_render_attribute( 'persons_container', 'class', 'multiple-persons' );
1491 $this->add_render_attribute( 'persons_container', 'data-persons-equal', $settings['multiple_equal_height'] );
1492 }
1493
1494 $carousel = 'yes' === $settings['carousel'] ? true : false;
1495
1496 if( $carousel ) {
1497
1498 $this->add_render_attribute('persons_container', 'data-carousel', $carousel );
1499
1500 $columns = intval ( 100 / substr( $settings['persons_per_row'], 0, strpos( $settings['persons_per_row'], '%') ) );
1501
1502 $columns_tablet = intval ( 100 / substr( $settings['persons_per_row_tablet'], 0, strpos( $settings['persons_per_row_tablet'], '%') ) );
1503
1504 $columns_mobile = intval ( 100 / substr( $settings['persons_per_row_mobile'], 0, strpos( $settings['persons_per_row_mobile'], '%') ) );
1505
1506 $play = 'yes' === $settings['carousel_play'] ? true : false;
1507
1508 $speed = ! empty( $settings['carousel_autoplay_speed'] ) ? $settings['carousel_autoplay_speed'] : 5000;
1509
1510 $this->add_render_attribute('persons_container', [
1511 'data-col' => $columns,
1512 'data-col-tablet' => $columns_tablet,
1513 'data-col-mobile' => $columns_mobile,
1514 'data-play' => $play,
1515 'data-speed'=> $speed,
1516 'data-rtl' => is_rtl()
1517 ]);
1518
1519 }
1520
1521
1522 ?>
1523 <div <?php echo $this->get_render_attribute_string( 'persons_container' ) ?>>
1524 <?php if( 'yes' !== $settings['multiple'] ) : ?>
1525 <div <?php echo $this->get_render_attribute_string( 'person_container' ) ?>>
1526 <div class="premium-person-image-container">
1527 <div class="premium-person-image-wrap">
1528 <?php echo $image_html; ?>
1529 </div>
1530 <?php if( 'style2' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) : ?>
1531 <div class="premium-person-social">
1532 <?php $this->get_social_icons(); ?>
1533 </div>
1534 <?php endif; ?>
1535 </div>
1536 <div class="premium-person-info">
1537 <?php $this->render_person_info(); ?>
1538 </div>
1539 </div>
1540 <?php else :
1541 foreach( $persons as $index => $person ) {
1542
1543 $person_image_html = '';
1544 if ( ! empty( $person['multiple_image']['url'] ) ) {
1545 $this->add_render_attribute( 'image', 'src', $person['multiple_image']['url'] );
1546 $this->add_render_attribute( 'image', 'alt', Control_Media::get_image_alt( $person['multiple_image'] ) );
1547 $this->add_render_attribute( 'image', 'title', Control_Media::get_image_title( $person['multiple_image'] ) );
1548
1549 $person_image_html = Group_Control_Image_Size::get_attachment_image_html( $person, 'thumbnail', 'multiple_image' );
1550 }
1551 ?>
1552 <div <?php echo $this->get_render_attribute_string( 'person_container' ) ?>>
1553 <div class="premium-person-image-container">
1554 <div class="premium-person-image-wrap">
1555 <?php echo $person_image_html; ?>
1556 </div>
1557 <?php if( 'style2' === $settings['premium_person_style'] && 'yes' === $person['multiple_social_enable'] ) : ?>
1558 <div class="premium-person-social">
1559 <?php $this->get_social_icons( $person ); ?>
1560 </div>
1561 <?php endif; ?>
1562 </div>
1563 <div class="premium-person-info">
1564 <?php $this->render_person_info( $person, $index ); ?>
1565 </div>
1566 </div>
1567 <?php }
1568 endif; ?>
1569 </div>
1570 <?php
1571 }
1572
1573 /*
1574 * Get Social Icons
1575 *
1576 * Render person social icons list
1577 *
1578 * @since 3.8.4
1579 * @access protected
1580 *
1581 * @param $person object current person
1582 */
1583 private function get_social_icons( $person = '' ) {
1584
1585 $settings = $this->get_settings_for_display();
1586
1587 $socialSites = [
1588 'facebook' => 'fa fa-facebook-f',
1589 'twitter' => 'fa fa-twitter',
1590 'linkedin' => 'fa fa-linkedin',
1591 'google' => 'fa fa-google-plus',
1592 'youtube' =>'fa fa-youtube',
1593 'instagram' =>'fa fa-instagram',
1594 'skype' => 'fa fa-skype',
1595 'pinterest' => 'fa fa-pinterest',
1596 'dribbble' => 'fa fa-dribbble',
1597 'behance' => 'fa fa-behance',
1598 'whatsapp' => 'fa fa-whatsapp',
1599 'telegram' => 'fa fa-telegram',
1600 'mail' => 'fa fa-envelope',
1601 'site' => 'fa fa-link',
1602 'number' => 'fa fa-phone'
1603 ];
1604
1605 echo '<ul class="premium-person-social-list">';
1606 foreach( $socialSites as $site => $icon ) {
1607
1608 if ( ! \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
1609 if( 'number' === $site && ! wp_is_mobile() ) {
1610 continue;
1611 }
1612 }
1613
1614 $value = ('' === $person) ? $settings[ 'premium_person_' . $site ] : $person[ 'multiple_' . $site ];
1615
1616 if( ! empty( $value ) ) {
1617 $icon_class = sprintf( 'elementor-icon premium-person-list-item premium-person-%s', $site );
1618 ?>
1619 <li class="<?php echo $icon_class; ?>"><a href="<?php echo $value; ?>" target="_blank"><i class="<?php echo $icon; ?>"></i></a></li>
1620 <?php
1621 }
1622 }
1623 echo '</ul>';
1624
1625 }
1626
1627 /*
1628 * Render Person Info
1629 *
1630 * @since 3.12.0
1631 * @access protected
1632 *
1633 * @param $person object current person
1634 * @param $index integer current person index
1635 */
1636 protected function render_person_info( $person = '', $index = '' ) {
1637
1638 $settings = $this->get_settings_for_display();
1639
1640 $this->add_inline_editing_attributes('premium_person_name', 'advanced');
1641
1642 $this->add_inline_editing_attributes('premium_person_title', 'advanced');
1643
1644 $this->add_inline_editing_attributes('premium_person_content','advanced');
1645
1646 $name_heading = $settings['premium_person_name_heading'];
1647
1648 $title_heading = $settings['premium_person_title_heading'];
1649
1650 $skin = $settings['premium_person_style'];
1651
1652 if( empty( $person ) ) :
1653 ?>
1654 <div class="premium-person-info-container">
1655 <?php if( 'style3' !== $skin && ! empty( $settings['premium_person_name'] ) ) : ?>
1656 <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string('premium_person_name'); ?>><?php echo $settings['premium_person_name']; ?></span></<?php echo $name_heading; ?>>
1657 <?php endif;
1658
1659 if( 'style3' === $skin ) : ?>
1660 <div class="premium-person-title-desc-wrap">
1661 <?php endif;
1662 if( ! empty( $settings['premium_person_title'] ) ) : ?>
1663 <<?php echo $title_heading; ?> class="premium-person-title"><span <?php echo $this->get_render_attribute_string('premium_person_title'); ?>><?php echo $settings['premium_person_title']; ?></span></<?php echo $title_heading; ?>>
1664 <?php endif;
1665
1666 if( ! empty( $settings['premium_person_content'] ) ) : ?>
1667 <div class="premium-person-content">
1668 <div <?php echo $this->get_render_attribute_string('premium_person_content'); ?>>
1669 <?php echo $settings['premium_person_content']; ?>
1670 </div>
1671 </div>
1672 <?php endif;
1673 if( 'style3' === $skin ) : ?>
1674 </div>
1675 <?php endif;
1676
1677 if( 'style3' === $skin ) : ?>
1678 <div class="premium-person-name-icons-wrap">
1679 <?php if( ! empty( $settings['premium_person_name'] ) ) : ?>
1680 <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string('premium_person_name'); ?>><?php echo $settings['premium_person_name']; ?></span></<?php echo $name_heading; ?>>
1681 <?php endif;
1682 if( 'yes' === $settings['premium_person_social_enable'] ) :
1683 $this->get_social_icons();
1684 endif; ?>
1685 </div>
1686 <?php endif;
1687
1688 if( 'style1' === $settings['premium_person_style'] && 'yes' === $settings['premium_person_social_enable'] ) :
1689 $this->get_social_icons();
1690 endif; ?>
1691 </div>
1692 <?php else:
1693
1694 $name_setting_key = $this->get_repeater_setting_key( 'multiple_name', 'multiple_persons', $index );
1695 $title_setting_key = $this->get_repeater_setting_key( 'multiple_title', 'multiple_persons', $index );
1696 $desc_setting_key = $this->get_repeater_setting_key( 'multiple_description', 'multiple_persons', $index );
1697
1698 $this->add_inline_editing_attributes( $name_setting_key, 'advanced' );
1699 $this->add_inline_editing_attributes( $title_setting_key, 'advanced' );
1700 $this->add_inline_editing_attributes( $desc_setting_key, 'advanced' );
1701
1702 ?>
1703 <div class="premium-person-info-container">
1704 <?php if( 'style3' !== $skin && ! empty( $person['multiple_name'] ) ) : ?>
1705 <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string($name_setting_key); ?>><?php echo $person['multiple_name']; ?></span></<?php echo $name_heading; ?>>
1706 <?php endif;
1707
1708 if( 'style3' === $skin ) : ?>
1709 <div class="premium-person-title-desc-wrap">
1710 <?php endif;
1711 if( ! empty( $person['multiple_title'] ) ) : ?>
1712 <<?php echo $title_heading; ?> class="premium-person-title"><span <?php echo $this->get_render_attribute_string($title_setting_key); ?>><?php echo $person['multiple_title']; ?></span></<?php echo $title_heading; ?>>
1713 <?php endif;
1714
1715 if( ! empty( $person['multiple_description'] ) ) : ?>
1716 <div class="premium-person-content">
1717 <div <?php echo $this->get_render_attribute_string($desc_setting_key); ?>>
1718 <?php echo $person['multiple_description']; ?>
1719 </div>
1720 </div>
1721 <?php endif;
1722 if( 'style3' === $skin ) : ?>
1723 </div>
1724 <?php endif;
1725
1726 if( 'style3' === $skin ) : ?>
1727 <div class="premium-person-name-icons-wrap">
1728 <?php if( ! empty( $person['multiple_name'] ) ) : ?>
1729 <<?php echo $name_heading; ?> class="premium-person-name"><span <?php echo $this->get_render_attribute_string($name_setting_key); ?>><?php echo $person['multiple_name']; ?></span></<?php echo $name_heading; ?>>
1730 <?php endif;
1731 if( 'yes' === $person['multiple_social_enable'] ) :
1732 $this->get_social_icons( $person );
1733 endif; ?>
1734 </div>
1735 <?php endif;
1736
1737 if( 'style1' === $settings['premium_person_style'] && 'yes' === $person['multiple_social_enable'] ) :
1738 $this->get_social_icons( $person );
1739 endif; ?>
1740 </div>
1741 <?php endif;
1742
1743 }
1744
1745
1746 /**
1747 * Render Persons widget output in the editor.
1748 *
1749 * Written as a Backbone JavaScript template and used to generate the live preview.
1750 *
1751 * @since 1.0.0
1752 * @access protected
1753 */
1754 protected function content_template() {
1755 ?>
1756 <#
1757
1758 view.addInlineEditingAttributes( 'premium_person_name', 'advanced' );
1759
1760 view.addInlineEditingAttributes( 'premium_person_title', 'advanced' );
1761
1762 view.addInlineEditingAttributes( 'premium_person_content', 'advanced' );
1763
1764 var nameHeading = settings.premium_person_name_heading,
1765
1766 titleHeading = settings.premium_person_title_heading,
1767
1768 imageEffect = 'premium-person-' + settings.premium_person_hover_image_effect + '-effect' ;
1769
1770 skin = settings.premium_person_style;
1771
1772 view.addRenderAttribute( 'persons_container', 'class', [ 'premium-persons-container', 'premium-person-' + skin ] );
1773
1774 view.addRenderAttribute('person_container', 'class', [ 'premium-person-container', imageEffect ] );
1775
1776 var imageHtml = '';
1777 if ( settings.premium_person_image.url ) {
1778 var image = {
1779 id: settings.premium_person_image.id,
1780 url: settings.premium_person_image.url,
1781 size: settings.thumbnail_size,
1782 dimension: settings.thumbnail_custom_dimension,
1783 model: view.getEditModel()
1784 };
1785
1786 var image_url = elementor.imagesManager.getImageUrl( image );
1787
1788 imageHtml = '<img src="' + image_url + '"/>';
1789
1790 }
1791
1792 if ( settings.multiple ) {
1793 var persons = settings.multiple_persons;
1794 view.addRenderAttribute( 'persons_container', 'class', 'multiple-persons' );
1795 view.addRenderAttribute( 'persons_container', 'data-persons-equal', settings.multiple_equal_height );
1796 }
1797
1798 var carousel = 'yes' === settings.carousel ? true : false;
1799
1800 if( carousel ) {
1801
1802 view.addRenderAttribute('persons_container', );
1803
1804 var play = 'yes' === settings.carousel_play ? true : false,
1805 speed = '' !== settings.carousel_autoplay_speed ? settings.carousel_autoplay_speed : 5000;
1806
1807 var columns = parseInt( 100 / settings.persons_per_row.substr( 0, settings.persons_per_row.indexOf('%') ) ),
1808 columnsTablet = parseInt( 100 / settings.persons_per_row_tablet.substr( 0, settings.persons_per_row_tablet.indexOf('%') ) ),
1809 columnsMob = parseInt( 100 / settings.persons_per_row_mobile.substr( 0, settings.persons_per_row_mobile.indexOf('%') ) );
1810
1811 view.addRenderAttribute('persons_container', {
1812 'data-carousel': carousel,
1813 'data-col': columns,
1814 'data-col-tablet': columnsTablet,
1815 'data-col-mobile': columnsMob,
1816 'data-play': play,
1817 'data-speed': speed
1818 });
1819
1820 }
1821
1822
1823 function getSocialIcons( person = null ) {
1824
1825 var personSettings,
1826 socialIcons;
1827
1828 if( null === person ) {
1829 personSettings = settings;
1830 socialIcons = {
1831 facebook: settings.premium_person_facebook,
1832 twitter: settings.premium_person_twitter,
1833 linkedin: settings.premium_person_linkedin,
1834 google: settings.premium_person_google,
1835 youtube: settings.premium_person_youtube,
1836 instagram: settings.premium_person_instagram,
1837 skype: settings.premium_person_skype,
1838 pinterest: settings.premium_person_pinterest,
1839 dribbble: settings.premium_person_dribbble,
1840 behance: settings.premium_person_behance,
1841 whatsapp: settings.premium_person_whatsapp,
1842 telegram: settings.premium_person_telegram,
1843 mail: settings.premium_person_mail,
1844 site: settings.premium_person_site,
1845 number: settings.premium_person_number
1846 };
1847 } else {
1848 personSettings = person;
1849 socialIcons = {
1850 facebook: person.multiple_facebook,
1851 twitter: person.multiple_twitter,
1852 linkedin: person.multiple_linkedin,
1853 google: person.multiple_google,
1854 youtube: person.multiple_youtube,
1855 instagram: person.multiple_instagram,
1856 skype: person.multiple_skype,
1857 pinterest: person.multiple_pinterest,
1858 dribbble: person.multiple_dribbble,
1859 behance: person.multiple_behance,
1860 whatsapp: person.multiple_whatsapp,
1861 telegram: person.multiple_telegram,
1862 mail: person.multiple_mail,
1863 site: person.multiple_site,
1864 number: person.multiple_number
1865 };
1866 }
1867
1868 #>
1869 <ul class="premium-person-social-list">
1870 <# if( '' != socialIcons.facebook ) { #>
1871 <li class="elementor-icon premium-person-list-item premium-person-facebook"><a href="{{ socialIcons.facebook }}" target="_blank"><i class="fa fa-facebook-f"></i></a></li>
1872 <# } #>
1873
1874 <# if( '' != socialIcons.twitter ) { #>
1875 <li class="elementor-icon premium-person-list-item premium-person-twitter"><a href="{{ socialIcons.twitter }}" target="_blank"><i class="fa fa-twitter"></i></a></li>
1876 <# } #>
1877
1878 <# if( '' != socialIcons.linkedin ) { #>
1879 <li class="elementor-icon premium-person-list-item premium-person-linkedin"><a href="{{ socialIcons.linkedin }}" target="_blank"><i class="fa fa-linkedin"></i></a></li>
1880 <# } #>
1881
1882 <# if( '' != socialIcons.google ) { #>
1883 <li class="elementor-icon premium-person-list-item premium-person-google"><a href="{{ socialIcons.google }}" target="_blank"><i class="fa fa-google-plus"></i></a></li>
1884 <# } #>
1885
1886 <# if( '' != socialIcons.youtube ) { #>
1887 <li class="elementor-icon premium-person-list-item premium-person-youtube"><a href="{{ socialIcons.youtube }}" target="_blank"><i class="fa fa-youtube"></i></a></li>
1888 <# } #>
1889
1890 <# if( '' != socialIcons.instagram ) { #>
1891 <li class="elementor-icon premium-person-list-item premium-person-instagram"><a href="{{ socialIcons.instagram }}" target="_blank"><i class="fa fa-instagram"></i></a></li>
1892 <# } #>
1893
1894 <# if( '' != socialIcons.skype ) { #>
1895 <li class="elementor-icon premium-person-list-item premium-person-skype"><a href="{{ socialIcons.skype }}" target="_blank"><i class="fa fa-skype"></i></a></li>
1896 <# } #>
1897
1898 <# if( '' != socialIcons.pinterest ) { #>
1899 <li class="elementor-icon premium-person-list-item premium-person-pinterest"><a href="{{ socialIcons.pinterest }}" target="_blank"><i class="fa fa-pinterest"></i></a></li>
1900 <# } #>
1901
1902 <# if( '' != socialIcons.dribbble ) { #>
1903 <li class="elementor-icon premium-person-list-item premium-person-dribbble"><a href="{{ socialIcons.dribbble }}" target="_blank"><i class="fa fa-dribbble"></i></a></li>
1904 <# } #>
1905
1906 <# if( '' != socialIcons.behance ) { #>
1907 <li class="elementor-icon premium-person-list-item premium-person-behance"><a href="{{ socialIcons.behance }}" target="_blank"><i class="fa fa-behance"></i></a></li>
1908 <# } #>
1909
1910 <# if( '' != socialIcons.whatsapp ) { #>
1911 <li class="elementor-icon premium-person-list-item premium-person-whatsapp"><a href="{{ socialIcons.whatsapp }}" target="_blank"><i class="fa fa-whatsapp"></i></a></li>
1912 <# } #>
1913
1914 <# if( '' != socialIcons.telegram ) { #>
1915 <li class="elementor-icon premium-person-list-item premium-person-telegram"><a href="{{ socialIcons.mail }}" target="_blank"><i class="fa fa-telegram"></i></a></li>
1916 <# } #>
1917
1918 <# if( '' != socialIcons.mail ) { #>
1919 <li class="elementor-icon premium-person-list-item premium-person-mail"><a href="{{ socialIcons.mail }}" target="_blank"><i class="fa fa-envelope"></i></a></li>
1920 <# } #>
1921
1922 <# if( '' != socialIcons.site ) { #>
1923 <li class="elementor-icon premium-person-list-item premium-person-site"><a href="{{ socialIcons.site }}" target="_blank"><i class="fa fa-link"></i></a></li>
1924 <# } #>
1925
1926 <# if( '' != socialIcons.number ) { #>
1927 <li class="elementor-icon premium-person-list-item premium-person-number"><a href="{{ socialIcons.number }}" target="_blank"><i class="fa fa-phone"></i></a></li>
1928 <# } #>
1929
1930 </ul>
1931 <# }
1932 #>
1933
1934 <div {{{ view.getRenderAttributeString('persons_container') }}}>
1935 <# if( 'yes' !== settings.multiple ) { #>
1936 <div {{{ view.getRenderAttributeString('person_container') }}}>
1937 <div class="premium-person-image-container">
1938 <div class="premium-person-image-wrap">
1939 {{{imageHtml}}}
1940 </div>
1941 <# if ( 'style2' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) { #>
1942 <div class="premium-person-social">
1943 <# getSocialIcons(); #>
1944 </div>
1945 <# } #>
1946 </div>
1947 <div class="premium-person-info">
1948 <div class="premium-person-info-container">
1949 <# if( 'style3' !== skin && '' != settings.premium_person_name ) { #>
1950 <{{{nameHeading}}} class="premium-person-name">
1951 <span {{{ view.getRenderAttributeString('premium_person_name') }}}>
1952 {{{ settings.premium_person_name }}}
1953 </span>
1954 </{{{nameHeading}}}>
1955 <# }
1956
1957 if( 'style3' === skin ) { #>
1958 <div class="premium-person-title-desc-wrap">
1959 <# }
1960 if( '' != settings.premium_person_title ) { #>
1961 <{{{titleHeading}}} class="premium-person-title">
1962 <span {{{ view.getRenderAttributeString('premium_person_title') }}}>
1963 {{{ settings.premium_person_title }}}
1964 </span>
1965 </{{{titleHeading}}}>
1966 <# }
1967 if( '' != settings.premium_person_content ) { #>
1968 <div class="premium-person-content">
1969 <div {{{ view.getRenderAttributeString('premium_person_content') }}}>
1970 {{{ settings.premium_person_content }}}
1971 </div>
1972 </div>
1973 <# }
1974 if( 'style3' === skin ) { #>
1975 </div>
1976 <# }
1977
1978 if( 'style3' === skin ) { #>
1979 <div class="premium-person-name-icons-wrap">
1980 <# if( '' != settings.premium_person_name ) { #>
1981 <{{{nameHeading}}} class="premium-person-name">
1982 <span {{{ view.getRenderAttributeString('premium_person_name') }}}>
1983 {{{ settings.premium_person_name }}}
1984 </span>
1985 </{{{nameHeading}}}>
1986 <# }
1987 if( 'yes' === settings.premium_person_social_enable ) {
1988 getSocialIcons();
1989 } #>
1990 </div>
1991 <# }
1992
1993
1994 if ( 'style1' === settings.premium_person_style && 'yes' === settings.premium_person_social_enable ) {
1995 getSocialIcons();
1996 } #>
1997 </div>
1998 </div>
1999 </div>
2000 <# } else {
2001 _.each( persons, function( person, index ) {
2002 var nameSettingKey = view.getRepeaterSettingKey( 'multiple_name', 'multiple_persons', index ),
2003 titleSettingKey = view.getRepeaterSettingKey( 'multiple_title', 'multiple_persons', index ),
2004 descSettingKey = view.getRepeaterSettingKey( 'multiple_description', 'multiple_persons', index );
2005
2006
2007 view.addInlineEditingAttributes( nameSettingKey, 'advanced' );
2008 view.addInlineEditingAttributes( titleSettingKey, 'advanced' );
2009 view.addInlineEditingAttributes( descSettingKey, 'advanced' );
2010
2011 var personImageHtml = '';
2012 if ( person.multiple_image.url ) {
2013 var personImage = {
2014 id: person.multiple_image.id,
2015 url: person.multiple_image.url,
2016 size: settings.thumbnail_size,
2017 dimension: settings.thumbnail_custom_dimension,
2018 model: view.getEditModel()
2019 };
2020
2021 var personImageUrl = elementor.imagesManager.getImageUrl( personImage );
2022
2023 personImageHtml = '<img src="' + personImageUrl + '"/>';
2024
2025 }
2026 #>
2027 <div {{{ view.getRenderAttributeString('person_container') }}}>
2028 <div class="premium-person-image-container">
2029 <div class="premium-person-image-wrap">
2030 {{{personImageHtml}}}
2031 </div>
2032 <# if ( 'style2' === settings.premium_person_style && 'yes' === person.multiple_social_enable ) { #>
2033 <div class="premium-person-social">
2034 <# getSocialIcons( person ); #>
2035 </div>
2036 <# } #>
2037 </div>
2038 <div class="premium-person-info">
2039 <div class="premium-person-info-container">
2040 <# if( 'style3' !== skin && '' != person.multiple_name ) { #>
2041 <{{{nameHeading}}} class="premium-person-name">
2042 <span {{{ view.getRenderAttributeString( nameSettingKey ) }}}>
2043 {{{ person.multiple_name }}}
2044 </span></{{{nameHeading}}}>
2045 <# }
2046
2047 if( 'style3' === skin ) { #>
2048 <div class="premium-person-title-desc-wrap">
2049 <# }
2050 if( '' != person.multiple_title ) { #>
2051 <{{{titleHeading}}} class="premium-person-title">
2052 <span {{{ view.getRenderAttributeString( titleSettingKey ) }}}>
2053 {{{ person.multiple_title }}}
2054 </span></{{{titleHeading}}}>
2055 <# }
2056 if( '' != person.multiple_description ) { #>
2057 <div class="premium-person-content">
2058 <div {{{ view.getRenderAttributeString( descSettingKey ) }}}>
2059 {{{ person.multiple_description }}}
2060 </div>
2061 </div>
2062 <# }
2063 if( 'style3' === skin ) { #>
2064 </div>
2065 <# }
2066
2067 if( 'style3' === skin ) { #>
2068 <div class="premium-person-name-icons-wrap">
2069 <# if( '' != settings.premium_person_name ) { #>
2070 <{{{nameHeading}}} class="premium-person-name">
2071 <span {{{ view.getRenderAttributeString( nameSettingKey ) }}}>
2072 {{{ person.multiple_name }}}
2073 </span></{{{nameHeading}}}>
2074 <# }
2075 if( 'yes' === person.multiple_social_enable ) {
2076 getSocialIcons( person );
2077 } #>
2078 </div>
2079 <# }
2080
2081 if ( 'style1' === settings.premium_person_style && 'yes' === person.multiple_social_enable ) {
2082 getSocialIcons( person );
2083 } #>
2084 </div>
2085 </div>
2086 </div>
2087 <# });
2088 } #>
2089
2090 </div>
2091 <?php
2092 }
2093 }
2094