sd_block_check_rule_gd_field()   F
last analyzed

Complexity

Conditions 89

Size

Total Lines 164
Code Lines 118

Duplication

Lines 0
Ratio 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
cc 89
eloc 118
nop 1
dl 0
loc 164
rs 3.3333
c 3
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
/**
3
 * A file for common functions.
4
 */
5
6
/**
7
 * Return an array of global $pagenow page names that should be used to exclude register_widgets.
8
 *
9
 * Used to block the loading of widgets on certain wp-admin pages to save on memory.
10
 *
11
 * @return mixed|void
12
 */
13
function sd_pagenow_exclude() {
14
	return apply_filters(
15
		'sd_pagenow_exclude',
16
		array(
17
			'upload.php',
18
			'edit-comments.php',
19
			'edit-tags.php',
20
			'index.php',
21
			'media-new.php',
22
			'options-discussion.php',
23
			'options-writing.php',
24
			'edit.php',
25
			'themes.php',
26
			'users.php',
27
		)
28
	);
29
}
30
31
32
/**
33
 * Return an array of widget class names that should be excluded.
34
 *
35
 * Used to conditionally load widgets code.
36
 *
37
 * @return mixed|void
38
 */
39
function sd_widget_exclude() {
40
	return apply_filters( 'sd_widget_exclude', array() );
41
}
42
43
44
/**
45
 * A helper function for margin inputs.
46
 *
47
 * @param string $type
48
 * @param array $overwrite
49
 *
50
 * @return array
51
 */
52
function sd_get_margin_input( $type = 'mt', $overwrite = array(), $include_negatives = true ) {
53
	global $aui_bs5;
54
	$options = array(
55
		''     => __( 'None', 'ayecode-connect' ),
56
		'auto' => __( 'auto', 'ayecode-connect' ),
57
		'0'    => '0',
58
		'1'    => '1',
59
		'2'    => '2',
60
		'3'    => '3',
61
		'4'    => '4',
62
		'5'    => '5',
63
		'6'    => '6',
64
		'7'    => '7',
65
		'8'    => '8',
66
		'9'    => '9',
67
		'10'   => '10',
68
		'11'   => '11',
69
		'12'   => '12',
70
	);
71
72
	if ( $include_negatives ) {
73
		$options['n1']  = '-1';
74
		$options['n2']  = '-2';
75
		$options['n3']  = '-3';
76
		$options['n4']  = '-4';
77
		$options['n5']  = '-5';
78
		$options['n6']  = '-6';
79
		$options['n7']  = '-7';
80
		$options['n8']  = '-8';
81
		$options['n9']  = '-9';
82
		$options['n10'] = '-10';
83
		$options['n11'] = '-11';
84
		$options['n12'] = '-12';
85
	}
86
87
	$defaults = array(
88
		'type'     => 'select',
89
		'title'    => __( 'Margin top', 'ayecode-connect' ),
90
		'options'  => $options,
91
		'default'  => '',
92
		'desc_tip' => true,
93
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
94
	);
95
96
	// title
97
	if ( $type == 'mt' ) {
98
		$defaults['title'] = __( 'Margin top', 'ayecode-connect' );
99
		$defaults['icon']  = 'box-top';
100
		$defaults['row']   = array(
101
			'title' => __( 'Margins', 'ayecode-connect' ),
102
			'key'   => 'wrapper-margins',
103
			'open'  => true,
104
			'class' => 'text-center',
105
		);
106
	} elseif ( $type == 'mr' ) {
107
		$defaults['title'] = __( 'Margin right', 'ayecode-connect' );
108
		$defaults['icon']  = 'box-right';
109
		$defaults['row']   = array(
110
			'key' => 'wrapper-margins',
111
		);
112
	} elseif ( $type == 'mb' ) {
113
		$defaults['title'] = __( 'Margin bottom', 'ayecode-connect' );
114
		$defaults['icon']  = 'box-bottom';
115
		$defaults['row']   = array(
116
			'key' => 'wrapper-margins',
117
		);
118
	} elseif ( $type == 'ml' ) {
119
		$defaults['title'] = __( 'Margin left', 'ayecode-connect' );
120
		$defaults['icon']  = 'box-left';
121
		$defaults['row']   = array(
122
			'key'   => 'wrapper-margins',
123
			'close' => true,
124
		);
125
	}
126
127
	$input = wp_parse_args( $overwrite, $defaults );
128
129
	return $input;
130
}
131
132
/**
133
 * A helper function for padding inputs.
134
 *
135
 * @param string $type
136
 * @param array $overwrite
137
 *
138
 * @return array
139
 */
140
function sd_get_padding_input( $type = 'pt', $overwrite = array() ) {
141
	$options = array(
142
		''   => __( 'None', 'ayecode-connect' ),
143
		'0'  => '0',
144
		'1'  => '1',
145
		'2'  => '2',
146
		'3'  => '3',
147
		'4'  => '4',
148
		'5'  => '5',
149
		'6'  => '6',
150
		'7'  => '7',
151
		'8'  => '8',
152
		'9'  => '9',
153
		'10' => '10',
154
		'11' => '11',
155
		'12' => '12',
156
	);
157
158
	$defaults = array(
159
		'type'     => 'select',
160
		'title'    => __( 'Padding top', 'ayecode-connect' ),
161
		'options'  => $options,
162
		'default'  => '',
163
		'desc_tip' => true,
164
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
165
	);
166
167
	// title
168
	if ( $type == 'pt' ) {
169
		$defaults['title'] = __( 'Padding top', 'ayecode-connect' );
170
		$defaults['icon']  = 'box-top';
171
		$defaults['row']   = array(
172
			'title' => __( 'Padding', 'ayecode-connect' ),
173
			'key'   => 'wrapper-padding',
174
			'open'  => true,
175
			'class' => 'text-center',
176
		);
177
	} elseif ( $type == 'pr' ) {
178
		$defaults['title'] = __( 'Padding right', 'ayecode-connect' );
179
		$defaults['icon']  = 'box-right';
180
		$defaults['row']   = array(
181
			'key' => 'wrapper-padding',
182
		);
183
	} elseif ( $type == 'pb' ) {
184
		$defaults['title'] = __( 'Padding bottom', 'ayecode-connect' );
185
		$defaults['icon']  = 'box-bottom';
186
		$defaults['row']   = array(
187
			'key' => 'wrapper-padding',
188
		);
189
	} elseif ( $type == 'pl' ) {
190
		$defaults['title'] = __( 'Padding left', 'ayecode-connect' );
191
		$defaults['icon']  = 'box-left';
192
		$defaults['row']   = array(
193
			'key'   => 'wrapper-padding',
194
			'close' => true,
195
196
		);
197
	}
198
199
	$input = wp_parse_args( $overwrite, $defaults );
200
201
	return $input;
202
}
203
204
/**
205
 * A helper function for border inputs.
206
 *
207
 * @param string $type
208
 * @param array $overwrite
209
 *
210
 * @return array
211
 */
212
function sd_get_border_input( $type = 'border', $overwrite = array() ) {
213
	global $aui_bs5;
214
215
	$defaults = array(
216
		'type'     => 'select',
217
		'title'    => __( 'Border', 'ayecode-connect' ),
218
		'options'  => array(),
219
		'default'  => '',
220
		'desc_tip' => true,
221
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
222
	);
223
224
	// title
225
	if ( 'rounded' === $type ) {
226
		$defaults['title']           = __( 'Border radius type', 'ayecode-connect' );
227
		$defaults['options']         = array(
228
			''               => __( 'Default', 'ayecode-connect' ),
229
			'rounded'        => 'rounded',
230
			'rounded-top'    => 'rounded-top',
231
			'rounded-right'  => 'rounded-right',
232
			'rounded-bottom' => 'rounded-bottom',
233
			'rounded-left'   => 'rounded-left',
234
		);
235
		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
236
	} elseif ( 'rounded_size' === $type ) {
237
		$defaults['title'] = __( 'Border radius size', 'ayecode-connect' );
238
239
		if ( $aui_bs5 ) {
240
			$defaults['options'] = array(
241
				''       => __( 'Default', 'ayecode-connect' ),
242
				'0'      => '0',
243
				'1'      => '1',
244
				'2'      => '2',
245
				'3'      => '3',
246
				'4'      => '4',
247
				'circle' => 'circle',
248
				'pill'   => 'pill',
249
			);
250
		} else {
251
			$defaults['options'] = array(
252
				''   => __( 'Default', 'ayecode-connect' ),
253
				'sm' => __( 'Small', 'ayecode-connect' ),
254
				'lg' => __( 'Large', 'ayecode-connect' ),
255
			);
256
		}
257
		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
258
	} elseif ( 'width' === $type ) { // BS%
259
		$defaults['title']           = __( 'Border width', 'ayecode-connect' );
260
		$defaults['options']         = array(
261
			''         => __( 'Default', 'ayecode-connect' ),
262
			'border-2' => '2',
263
			'border-3' => '3',
264
			'border-4' => '4',
265
			'border-5' => '5',
266
		);
267
		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
268
	} elseif ( 'opacity' === $type ) { // BS%
269
		$defaults['title']           = __( 'Border opacity', 'ayecode-connect' );
270
		$defaults['options']         = array(
271
			''                  => __( 'Default', 'ayecode-connect' ),
272
			'border-opacity-75' => '75%',
273
			'border-opacity-50' => '50%',
274
			'border-opacity-25' => '25%',
275
			'border-opacity-10' => '10%',
276
		);
277
		$defaults['element_require'] = $aui_bs5 ? '([%border%]&&[%border%]!="0")' : '1==2';
278
	} elseif ( 'type' === $type ) {
279
		$defaults['title']           = __( 'Border show', 'ayecode-connect' );
280
		$defaults['options']         = array(
281
			'border'          => __( 'Full (set color to show)', 'ayecode-connect' ),
282
			'border-top'      => __( 'Top', 'ayecode-connect' ),
283
			'border-bottom'   => __( 'Bottom', 'ayecode-connect' ),
284
			'border-left'     => __( 'Left', 'ayecode-connect' ),
285
			'border-right'    => __( 'Right', 'ayecode-connect' ),
286
			'border-top-0'    => __( '-Top', 'ayecode-connect' ),
287
			'border-bottom-0' => __( '-Bottom', 'ayecode-connect' ),
288
			'border-left-0'   => __( '-Left', 'ayecode-connect' ),
289
			'border-right-0'  => __( '-Right', 'ayecode-connect' ),
290
		);
291
		$defaults['element_require'] = '([%border%]&&[%border%]!="0")';
292
	} else {
293
		$defaults['title']   = __( 'Border color', 'ayecode-connect' );
294
		$defaults['options'] = array(
295
			''  => __( 'Default', 'ayecode-connect' ),
296
			'0' => __( 'None', 'ayecode-connect' )
297
		) + sd_aui_colors( false, false, false, false, true );
298
	}
299
300
	$input = wp_parse_args( $overwrite, $defaults );
301
302
	return $input;
303
}
304
305
/**
306
 * A helper function for shadow inputs.
307
 *
308
 * @param string $type
309
 * @param array $overwrite
310
 *
311
 * @return array
312
 */
313
function sd_get_shadow_input( $type = 'shadow', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

313
function sd_get_shadow_input( /** @scrutinizer ignore-unused */ $type = 'shadow', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
314
	$options = array(
315
		''          => __( 'None', 'ayecode-connect' ),
316
		'shadow-sm' => __( 'Small', 'ayecode-connect' ),
317
		'shadow'    => __( 'Regular', 'ayecode-connect' ),
318
		'shadow-lg' => __( 'Large', 'ayecode-connect' ),
319
	);
320
321
	$defaults = array(
322
		'type'     => 'select',
323
		'title'    => __( 'Shadow', 'ayecode-connect' ),
324
		'options'  => $options,
325
		'default'  => '',
326
		'desc_tip' => true,
327
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
328
	);
329
330
	$input = wp_parse_args( $overwrite, $defaults );
331
332
	return $input;
333
}
334
335
/**
336
 * A helper function for background inputs.
337
 *
338
 * @param string $type
339
 * @param array $overwrite
340
 *
341
 * @return array
342
 */
343
function sd_get_background_input( $type = 'bg', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

343
function sd_get_background_input( /** @scrutinizer ignore-unused */ $type = 'bg', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
344
	$options = array(
345
		           ''            => __( 'None', 'ayecode-connect' ),
346
		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
347
	           ) + sd_aui_colors(false,false,false,false,true);
348
349
	$defaults = array(
350
		'type'     => 'select',
351
		'title'    => __( 'Background color', 'ayecode-connect' ),
352
		'options'  => $options,
353
		'default'  => '',
354
		'desc_tip' => true,
355
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
356
	);
357
358
	$input = wp_parse_args( $overwrite, $defaults );
359
360
	return $input;
361
}
362
363
/**
364
 * A function to get th opacity options.
365
 *
366
 * @param $type
367
 * @param $overwrite
368
 *
369
 * @return array
370
 */
371
function sd_get_opacity_input( $type = 'opacity', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

371
function sd_get_opacity_input( /** @scrutinizer ignore-unused */ $type = 'opacity', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
372
	$options = array(
373
		''            => __( 'Default', 'ayecode-connect' ),
374
		'opacity-10'  => '10%',
375
		'opacity-15'  => '15%',
376
		'opacity-25'  => '25%',
377
		'opacity-35'  => '35%',
378
		'opacity-40'  => '40%',
379
		'opacity-50'  => '50%',
380
		'opacity-60'  => '60%',
381
		'opacity-65'  => '65%',
382
		'opacity-70'  => '70%',
383
		'opacity-75'  => '75%',
384
		'opacity-80'  => '80%',
385
		'opacity-90'  => '90%',
386
		'opacity-100' => '100%',
387
	);
388
389
	$defaults = array(
390
		'type'     => 'select',
391
		'title'    => __( 'Opacity', 'ayecode-connect' ),
392
		'options'  => $options,
393
		'default'  => '',
394
		'desc_tip' => true,
395
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
396
	);
397
398
	$input = wp_parse_args( $overwrite, $defaults );
399
400
	return $input;
401
}
402
403
/**
404
 * A helper function for a set of background inputs.
405
 *
406
 * @param string $type
407
 * @param array $overwrite
408
 *
409
 * @return array
410
 */
411
function sd_get_background_inputs( $type = 'bg', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array(), $include_button_colors = false ) {
412
413
	$color_options = $include_button_colors ? sd_aui_colors( false, true, true, true, true ) : sd_aui_colors(false, false, false, false, true );
414
415
	$options = array(
416
		           ''            => __( 'None', 'ayecode-connect' ),
417
		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
418
	           ) + $color_options;
419
420
	if ( false !== $overwrite_color ) {
421
		$options['custom-color'] = __( 'Custom Color', 'ayecode-connect' );
422
	}
423
424
	if ( false !== $overwrite_gradient ) {
425
		$options['custom-gradient'] = __( 'Custom Gradient', 'ayecode-connect' );
426
	}
427
428
	$defaults = array(
429
		'type'     => 'select',
430
		'title'    => __( 'Background Color', 'ayecode-connect' ),
431
		'options'  => $options,
432
		'default'  => '',
433
		'desc_tip' => true,
434
		'group'    => __( 'Background', 'ayecode-connect' ),
435
	);
436
437
	if ( $overwrite !== false ) {
0 ignored issues
show
introduced by
The condition $overwrite !== false is always true.
Loading history...
438
		$input[ $type ] = wp_parse_args( $overwrite, $defaults );
0 ignored issues
show
Comprehensibility Best Practice introduced by
$input was never initialized. Although not strictly required by PHP, it is generally a good practice to add $input = array(); before regardless.
Loading history...
439
	}
440
441
	if ( $overwrite_color !== false ) {
442
		$input[ $type . '_color' ] = wp_parse_args(
443
			$overwrite_color,
444
			array(
445
				'type'            => 'color',
446
				'title'           => __( 'Custom color', 'ayecode-connect' ),
447
				'placeholder'     => '',
448
				'default'         => '#0073aa',
449
				'desc_tip'        => true,
450
				'group'           => __( 'Background', 'ayecode-connect' ),
451
				'element_require' => '[%' . $type . '%]=="custom-color"',
452
			)
453
		);
454
	}
455
456
	if ( $overwrite_gradient !== false ) {
457
		$input[ $type . '_gradient' ] = wp_parse_args(
458
			$overwrite_gradient,
459
			array(
460
				'type'            => 'gradient',
461
				'title'           => __( 'Custom gradient', 'ayecode-connect' ),
462
				'placeholder'     => '',
463
				'default'         => 'linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%)',
464
				'desc_tip'        => true,
465
				'group'           => __( 'Background', 'ayecode-connect' ),
466
				'element_require' => '[%' . $type . '%]=="custom-gradient"',
467
			)
468
		);
469
	}
470
471
	if ( $overwrite_image !== false ) {
472
473
		$input[ $type . '_image_fixed' ] = array(
474
			'type'            => 'checkbox',
475
			'title'           => __( 'Fixed background', 'ayecode-connect' ),
476
			'default'         => '',
477
			'desc_tip'        => true,
478
			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
479
			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
480
481
		);
482
483
		$input[ $type . '_image_use_featured' ] = array(
484
			'type'            => 'checkbox',
485
			'title'           => __( 'Use featured image', 'ayecode-connect' ),
486
			'default'         => '',
487
			'desc_tip'        => true,
488
			'group'           => ! empty( $overwrite_image['group'] ) ? $overwrite_image['group'] : __( 'Background', 'ayecode-connect' ),
489
			'element_require' => '( [%' . $type . '%]=="" || [%' . $type . '%]=="custom-color" || [%' . $type . '%]=="custom-gradient" || [%' . $type . '%]=="transparent" )',
490
491
		);
492
493
		$input[ $type . '_image' ] = wp_parse_args(
494
			$overwrite_image,
495
			array(
496
				'type'        => 'image',
497
				'title'       => __( 'Custom image', 'ayecode-connect' ),
498
				'placeholder' => '',
499
				'default'     => '',
500
				'desc_tip'    => true,
501
				'group'       => __( 'Background', 'ayecode-connect' ),
502
				//          'element_require' => ' ![%' . $type . '_image_use_featured%] '
503
			)
504
		);
505
506
		$input[ $type . '_image_id' ] = wp_parse_args(
507
			$overwrite_image,
508
			array(
509
				'type'        => 'hidden',
510
				'hidden_type' => 'number',
511
				'title'       => '',
512
				'placeholder' => '',
513
				'default'     => '',
514
				'group'       => __( 'Background', 'ayecode-connect' ),
515
			)
516
		);
517
518
		$input[ $type . '_image_xy' ] = wp_parse_args(
519
			$overwrite_image,
520
			array(
521
				'type'        => 'image_xy',
522
				'title'       => '',
523
				'placeholder' => '',
524
				'default'     => '',
525
				'group'       => __( 'Background', 'ayecode-connect' ),
526
			)
527
		);
528
	}
529
530
	return $input;
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $input does not seem to be defined for all execution paths leading up to this point.
Loading history...
531
}
532
533
/**
534
 * A helper function for a set of inputs for the shape divider.
535
 *
536
 * @param string $type
537
 * @param array $overwrite
538
 *
539
 * @return array
540
 */
541
function sd_get_shape_divider_inputs( $type = 'sd', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), $overwrite_image = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $overwrite_image is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

541
function sd_get_shape_divider_inputs( $type = 'sd', $overwrite = array(), $overwrite_color = array(), $overwrite_gradient = array(), /** @scrutinizer ignore-unused */ $overwrite_image = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
542
543
	$options = array(
544
		''                      => __( 'None', 'ayecode-connect' ),
545
		'mountains'             => __( 'Mountains', 'ayecode-connect' ),
546
		'drops'                 => __( 'Drops', 'ayecode-connect' ),
547
		'clouds'                => __( 'Clouds', 'ayecode-connect' ),
548
		'zigzag'                => __( 'Zigzag', 'ayecode-connect' ),
549
		'pyramids'              => __( 'Pyramids', 'ayecode-connect' ),
550
		'triangle'              => __( 'Triangle', 'ayecode-connect' ),
551
		'triangle-asymmetrical' => __( 'Triangle Asymmetrical', 'ayecode-connect' ),
552
		'tilt'                  => __( 'Tilt', 'ayecode-connect' ),
553
		'opacity-tilt'          => __( 'Opacity Tilt', 'ayecode-connect' ),
554
		'opacity-fan'           => __( 'Opacity Fan', 'ayecode-connect' ),
555
		'curve'                 => __( 'Curve', 'ayecode-connect' ),
556
		'curve-asymmetrical'    => __( 'Curve Asymmetrical', 'ayecode-connect' ),
557
		'waves'                 => __( 'Waves', 'ayecode-connect' ),
558
		'wave-brush'            => __( 'Wave Brush', 'ayecode-connect' ),
559
		'waves-pattern'         => __( 'Waves Pattern', 'ayecode-connect' ),
560
		'arrow'                 => __( 'Arrow', 'ayecode-connect' ),
561
		'split'                 => __( 'Split', 'ayecode-connect' ),
562
		'book'                  => __( 'Book', 'ayecode-connect' ),
563
	);
564
565
	$defaults = array(
566
		'type'     => 'select',
567
		'title'    => __( 'Type', 'ayecode-connect' ),
568
		'options'  => $options,
569
		'default'  => '',
570
		'desc_tip' => true,
571
		'group'    => __( 'Shape Divider', 'ayecode-connect' ),
572
	);
573
574
	$input[ $type ] = wp_parse_args( $overwrite, $defaults );
0 ignored issues
show
Comprehensibility Best Practice introduced by
$input was never initialized. Although not strictly required by PHP, it is generally a good practice to add $input = array(); before regardless.
Loading history...
575
576
	$input[ $type . '_notice' ] = array(
577
		'type'            => 'notice',
578
		'desc'            => __( 'Parent element must be position `relative`', 'ayecode-connect' ),
579
		'status'          => 'warning',
580
		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
581
		'element_require' => '[%' . $type . '%]!=""',
582
	);
583
584
	$input[ $type . '_position' ] = wp_parse_args(
585
		$overwrite_color,
586
		array(
587
			'type'            => 'select',
588
			'title'           => __( 'Position', 'ayecode-connect' ),
589
			'options'         => array(
590
				'top'    => __( 'Top', 'ayecode-connect' ),
591
				'bottom' => __( 'Bottom', 'ayecode-connect' ),
592
			),
593
			'desc_tip'        => true,
594
			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
595
			'element_require' => '[%' . $type . '%]!=""',
596
		)
597
	);
598
599
	$options = array(
600
		           ''            => __( 'None', 'ayecode-connect' ),
601
		           'transparent' => __( 'Transparent', 'ayecode-connect' ),
602
	           ) + sd_aui_colors(false,false,false,false,true )
603
	           + array(
604
		           'custom-color' => __( 'Custom Color', 'ayecode-connect' ),
605
	           );
606
607
	$input[ $type . '_color' ] = wp_parse_args(
608
		$overwrite_color,
609
		array(
610
			'type'            => 'select',
611
			'title'           => __( 'Color', 'ayecode-connect' ),
612
			'options'         => $options,
613
			'desc_tip'        => true,
614
			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
615
			'element_require' => '[%' . $type . '%]!=""',
616
		)
617
	);
618
619
	$input[ $type . '_custom_color' ] = wp_parse_args(
620
		$overwrite_color,
621
		array(
622
			'type'            => 'color',
623
			'title'           => __( 'Custom color', 'ayecode-connect' ),
624
			'placeholder'     => '',
625
			'default'         => '#0073aa',
626
			'desc_tip'        => true,
627
			'group'           => __( 'Shape Divider', 'ayecode-connect' ),
628
			'element_require' => '[%' . $type . '_color%]=="custom-color" && [%' . $type . '%]!=""',
629
		)
630
	);
631
632
	$input[ $type . '_width' ] = wp_parse_args(
633
		$overwrite_gradient,
634
		array(
635
			'type'              => 'range',
636
			'title'             => __( 'Width', 'ayecode-connect' ),
637
			'placeholder'       => '',
638
			'default'           => '200',
639
			'desc_tip'          => true,
640
			'custom_attributes' => array(
641
				'min' => 100,
642
				'max' => 300,
643
			),
644
			'group'             => __( 'Shape Divider', 'ayecode-connect' ),
645
			'element_require'   => '[%' . $type . '%]!=""',
646
		)
647
	);
648
649
	$input[ $type . '_height' ] = array(
650
		'type'              => 'range',
651
		'title'             => __( 'Height', 'ayecode-connect' ),
652
		'default'           => '100',
653
		'desc_tip'          => true,
654
		'custom_attributes' => array(
655
			'min' => 0,
656
			'max' => 500,
657
		),
658
		'group'             => __( 'Shape Divider', 'ayecode-connect' ),
659
		'element_require'   => '[%' . $type . '%]!=""',
660
	);
661
662
	$requires = array(
663
		'mountains'             => array( 'flip' ),
664
		'drops'                 => array( 'flip', 'invert' ),
665
		'clouds'                => array( 'flip', 'invert' ),
666
		'zigzag'                => array(),
667
		'pyramids'              => array( 'flip', 'invert' ),
668
		'triangle'              => array( 'invert' ),
669
		'triangle-asymmetrical' => array( 'flip', 'invert' ),
670
		'tilt'                  => array( 'flip' ),
671
		'opacity-tilt'          => array( 'flip' ),
672
		'opacity-fan'           => array(),
673
		'curve'                 => array( 'invert' ),
674
		'curve-asymmetrical'    => array( 'flip', 'invert' ),
675
		'waves'                 => array( 'flip', 'invert' ),
676
		'wave-brush'            => array( 'flip' ),
677
		'waves-pattern'         => array( 'flip' ),
678
		'arrow'                 => array( 'invert' ),
679
		'split'                 => array( 'invert' ),
680
		'book'                  => array( 'invert' ),
681
	);
682
683
	$input[ $type . '_flip' ] = array(
684
		'type'            => 'checkbox',
685
		'title'           => __( 'Flip', 'ayecode-connect' ),
686
		'default'         => '',
687
		'desc_tip'        => true,
688
		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
689
		'element_require' => sd_get_element_require_string( $requires, 'flip', 'sd' ),
690
	);
691
692
	$input[ $type . '_invert' ] = array(
693
		'type'            => 'checkbox',
694
		'title'           => __( 'Invert', 'ayecode-connect' ),
695
		'default'         => '',
696
		'desc_tip'        => true,
697
		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
698
		'element_require' => sd_get_element_require_string( $requires, 'invert', 'sd' ),
699
	);
700
701
	$input[ $type . '_btf' ] = array(
702
		'type'            => 'checkbox',
703
		'title'           => __( 'Bring to front', 'ayecode-connect' ),
704
		'default'         => '',
705
		'desc_tip'        => true,
706
		'group'           => __( 'Shape Divider', 'ayecode-connect' ),
707
		'element_require' => '[%' . $type . '%]!=""',
708
709
	);
710
711
	return $input;
712
}
713
714
/**
715
 * Get the element require sting.
716
 *
717
 * @param $args
718
 * @param $key
719
 * @param $type
720
 *
721
 * @return string
722
 */
723
function sd_get_element_require_string( $args, $key, $type ) {
724
	$output   = '';
725
	$requires = array();
726
727
	if ( ! empty( $args ) ) {
728
		foreach ( $args as $t => $k ) {
729
			if ( in_array( $key, $k ) ) {
730
				$requires[] = '[%' . $type . '%]=="' . $t . '"';
731
			}
732
		}
733
734
		if ( ! empty( $requires ) ) {
735
			$output = '(' . implode( ' || ', $requires ) . ')';
736
		}
737
	}
738
739
	return $output;
740
}
741
742
/**
743
 * A helper function for text color inputs.
744
 *
745
 * @param string $type
746
 * @param array $overwrite
747
 *
748
 * @return array
749
 */
750
function sd_get_text_color_input( $type = 'text_color', $overwrite = array(), $has_custom = false, $emphasis = true ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

750
function sd_get_text_color_input( /** @scrutinizer ignore-unused */ $type = 'text_color', $overwrite = array(), $has_custom = false, $emphasis = true ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $emphasis is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

750
function sd_get_text_color_input( $type = 'text_color', $overwrite = array(), $has_custom = false, /** @scrutinizer ignore-unused */ $emphasis = true ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
751
	$options = array(
752
		           '' => __( 'None', 'ayecode-connect' ),
753
	           ) + sd_aui_colors(false,false,false,false,false, true);
754
755
	if ( $has_custom ) {
756
		$options['custom'] = __( 'Custom color', 'ayecode-connect' );
757
	}
758
759
	$defaults = array(
760
		'type'     => 'select',
761
		'title'    => __( 'Text color', 'ayecode-connect' ),
762
		'options'  => $options,
763
		'default'  => '',
764
		'desc_tip' => true,
765
		'group'    => __( 'Typography', 'ayecode-connect' ),
766
	);
767
768
	$input = wp_parse_args( $overwrite, $defaults );
769
770
	return $input;
771
}
772
773
function sd_get_text_color_input_group( $type = 'text_color', $overwrite = array(), $overwrite_custom = array() ) {
774
	$inputs = array();
775
776
	if ( $overwrite !== false ) {
777
		$inputs[ $type ] = sd_get_text_color_input( $type, $overwrite, true );
778
	}
779
780
	if ( $overwrite_custom !== false ) {
781
		$custom            = $type . '_custom';
782
		$inputs[ $custom ] = sd_get_custom_color_input( $custom, $overwrite_custom, $type );
783
	}
784
785
	return $inputs;
786
}
787
788
/**
789
 * A helper function for custom color.
790
 *
791
 * @param string $type
792
 * @param array $overwrite
793
 *
794
 * @return array
795
 */
796
function sd_get_custom_color_input( $type = 'color_custom', $overwrite = array(), $parent_type = '' ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

796
function sd_get_custom_color_input( /** @scrutinizer ignore-unused */ $type = 'color_custom', $overwrite = array(), $parent_type = '' ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
797
798
	$defaults = array(
799
		'type'        => 'color',
800
		'title'       => __( 'Custom color', 'ayecode-connect' ),
801
		'default'     => '',
802
		'placeholder' => '',
803
		'desc_tip'    => true,
804
		'group'       => __( 'Typography', 'ayecode-connect' ),
805
	);
806
807
	if ( $parent_type ) {
808
		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
809
	}
810
811
	$input = wp_parse_args( $overwrite, $defaults );
812
813
	return $input;
814
}
815
816
/**
817
 * A helper function for column inputs.
818
 *
819
 * @param string $type
820
 * @param array $overwrite
821
 *
822
 * @return array
823
 */
824
function sd_get_col_input( $type = 'col', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

824
function sd_get_col_input( /** @scrutinizer ignore-unused */ $type = 'col', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
825
826
	$device_size = '';
827
	if ( ! empty( $overwrite['device_type'] ) ) {
828
		if ( $overwrite['device_type'] == 'Tablet' ) {
829
			$device_size = '-md';
0 ignored issues
show
Unused Code introduced by
The assignment to $device_size is dead and can be removed.
Loading history...
830
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
831
			$device_size = '-lg';
832
		}
833
	}
834
	$options = array(
835
		''     => __( 'Default', 'ayecode-connect' ),
836
		'auto' => __( 'auto', 'ayecode-connect' ),
837
		'1'    => '1/12',
838
		'2'    => '2/12',
839
		'3'    => '3/12',
840
		'4'    => '4/12',
841
		'5'    => '5/12',
842
		'6'    => '6/12',
843
		'7'    => '7/12',
844
		'8'    => '8/12',
845
		'9'    => '9/12',
846
		'10'   => '10/12',
847
		'11'   => '11/12',
848
		'12'   => '12/12',
849
	);
850
851
	$defaults = array(
852
		'type'            => 'select',
853
		'title'           => __( 'Column width', 'ayecode-connect' ),
854
		'options'         => $options,
855
		'default'         => '',
856
		'desc_tip'        => true,
857
		'group'           => __( 'Container', 'ayecode-connect' ),
858
		'element_require' => '[%container%]=="col"',
859
	);
860
861
	$input = wp_parse_args( $overwrite, $defaults );
862
863
	return $input;
864
}
865
866
/**
867
 * A helper function for row columns inputs.
868
 *
869
 * @param string $type
870
 * @param array $overwrite
871
 *
872
 * @return array
873
 */
874
function sd_get_row_cols_input( $type = 'row_cols', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

874
function sd_get_row_cols_input( /** @scrutinizer ignore-unused */ $type = 'row_cols', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
875
876
	$device_size = '';
877
	if ( ! empty( $overwrite['device_type'] ) ) {
878
		if ( $overwrite['device_type'] == 'Tablet' ) {
879
			$device_size = '-md';
0 ignored issues
show
Unused Code introduced by
The assignment to $device_size is dead and can be removed.
Loading history...
880
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
881
			$device_size = '-lg';
882
		}
883
	}
884
	$options = array(
885
		''  => __( 'auto', 'ayecode-connect' ),
886
		'1' => '1',
887
		'2' => '2',
888
		'3' => '3',
889
		'4' => '4',
890
		'5' => '5',
891
		'6' => '6',
892
	);
893
894
	$defaults = array(
895
		'type'            => 'select',
896
		'title'           => __( 'Row columns', 'ayecode-connect' ),
897
		'options'         => $options,
898
		'default'         => '',
899
		'desc_tip'        => true,
900
		'group'           => __( 'Container', 'ayecode-connect' ),
901
		'element_require' => '[%container%]=="row"',
902
	);
903
904
	$input = wp_parse_args( $overwrite, $defaults );
905
906
	return $input;
907
}
908
909
/**
910
 * A helper function for text align inputs.
911
 *
912
 * @param string $type
913
 * @param array $overwrite
914
 *
915
 * @return array
916
 */
917
function sd_get_text_align_input( $type = 'text_align', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

917
function sd_get_text_align_input( /** @scrutinizer ignore-unused */ $type = 'text_align', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
918
919
	$device_size = '';
920
	if ( ! empty( $overwrite['device_type'] ) ) {
921
		if ( $overwrite['device_type'] == 'Tablet' ) {
922
			$device_size = '-md';
923
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
924
			$device_size = '-lg';
925
		}
926
	}
927
	$options = array(
928
		''                                => __( 'Default', 'ayecode-connect' ),
929
		'text' . $device_size . '-left'   => __( 'Left', 'ayecode-connect' ),
930
		'text' . $device_size . '-right'  => __( 'Right', 'ayecode-connect' ),
931
		'text' . $device_size . '-center' => __( 'Center', 'ayecode-connect' ),
932
	);
933
934
	$defaults = array(
935
		'type'     => 'select',
936
		'title'    => __( 'Text align', 'ayecode-connect' ),
937
		'options'  => $options,
938
		'default'  => '',
939
		'desc_tip' => true,
940
		'group'    => __( 'Typography', 'ayecode-connect' ),
941
	);
942
943
	$input = wp_parse_args( $overwrite, $defaults );
944
945
	return $input;
946
}
947
948
/**
949
 * A helper function for display inputs.
950
 *
951
 * @param string $type
952
 * @param array $overwrite
953
 *
954
 * @return array
955
 */
956
function sd_get_display_input( $type = 'display', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

956
function sd_get_display_input( /** @scrutinizer ignore-unused */ $type = 'display', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
957
958
	$device_size = '';
959
	if ( ! empty( $overwrite['device_type'] ) ) {
960
		if ( $overwrite['device_type'] == 'Tablet' ) {
961
			$device_size = '-md';
962
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
963
			$device_size = '-lg';
964
		}
965
	}
966
	$options = array(
967
		''                                   => __( 'Default', 'ayecode-connect' ),
968
		'd' . $device_size . '-none'         => 'none',
969
		'd' . $device_size . '-inline'       => 'inline',
970
		'd' . $device_size . '-inline-block' => 'inline-block',
971
		'd' . $device_size . '-block'        => 'block',
972
		'd' . $device_size . '-table'        => 'table',
973
		'd' . $device_size . '-table-cell'   => 'table-cell',
974
		'd' . $device_size . '-table-row'    => 'table-row',
975
		'd' . $device_size . '-flex'         => 'flex',
976
		'd' . $device_size . '-inline-flex'  => 'inline-flex',
977
	);
978
979
	$defaults = array(
980
		'type'     => 'select',
981
		'title'    => __( 'Display', 'ayecode-connect' ),
982
		'options'  => $options,
983
		'default'  => '',
984
		'desc_tip' => true,
985
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
986
	);
987
988
	$input = wp_parse_args( $overwrite, $defaults );
989
990
	return $input;
991
}
992
993
/**
994
 * A helper function for text justify inputs.
995
 *
996
 * @param string $type
997
 * @param array $overwrite
998
 *
999
 * @return array
1000
 */
1001
function sd_get_text_justify_input( $type = 'text_justify', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1001
function sd_get_text_justify_input( /** @scrutinizer ignore-unused */ $type = 'text_justify', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1002
1003
	$defaults = array(
1004
		'type'     => 'checkbox',
1005
		'title'    => __( 'Text justify', 'ayecode-connect' ),
1006
		'default'  => '',
1007
		'desc_tip' => true,
1008
		'group'    => __( 'Typography', 'ayecode-connect' ),
1009
	);
1010
1011
	$input = wp_parse_args( $overwrite, $defaults );
1012
1013
	return $input;
1014
}
1015
1016
/**
1017
 * Get the AUI colors.
1018
 *
1019
 * @param $include_branding
1020
 * @param $include_outlines
1021
 * @param $outline_button_only_text
1022
 *
1023
 * @return array
1024
 */
1025
function sd_aui_colors( $include_branding = false, $include_outlines = false, $outline_button_only_text = false, $include_translucent = false, $include_subtle = false, $include_emphasis = false ) {
1026
	$theme_colors = array();
1027
1028
	$theme_colors['primary']   = __( 'Primary', 'ayecode-connect' );
1029
	$theme_colors['secondary'] = __( 'Secondary', 'ayecode-connect' );
1030
	$theme_colors['success']   = __( 'Success', 'ayecode-connect' );
1031
	$theme_colors['danger']    = __( 'Danger', 'ayecode-connect' );
1032
	$theme_colors['warning']   = __( 'Warning', 'ayecode-connect' );
1033
	$theme_colors['info']      = __( 'Info', 'ayecode-connect' );
1034
	$theme_colors['light']     = __( 'Light', 'ayecode-connect' );
1035
	$theme_colors['dark']      = __( 'Dark', 'ayecode-connect' );
1036
	$theme_colors['black']     = __( 'Black', 'ayecode-connect' );
1037
	$theme_colors['white']     = __( 'White', 'ayecode-connect' );
1038
	$theme_colors['purple']    = __( 'Purple', 'ayecode-connect' );
1039
	$theme_colors['salmon']    = __( 'Salmon', 'ayecode-connect' );
1040
	$theme_colors['cyan']      = __( 'Cyan', 'ayecode-connect' );
1041
	$theme_colors['gray']      = __( 'Gray', 'ayecode-connect' );
1042
	$theme_colors['muted']     = __( 'Muted', 'ayecode-connect' );
1043
	$theme_colors['gray-dark'] = __( 'Gray dark', 'ayecode-connect' );
1044
	$theme_colors['indigo']    = __( 'Indigo', 'ayecode-connect' );
1045
	$theme_colors['orange']    = __( 'Orange', 'ayecode-connect' );
1046
	$theme_colors['body']      = __( 'Body', 'ayecode-connect' );
1047
1048
1049
	// for bg and borders
1050
	if ( $include_subtle ) {
1051
		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1052
		$theme_colors['primary-subtle']   = __( 'Primary Subtle', 'ayecode-connect' );
1053
		$theme_colors['secondary-subtle'] = __( 'Secondary Subtle', 'ayecode-connect' );
1054
		$theme_colors['success-subtle']   = __( 'Success Subtle', 'ayecode-connect' );
1055
		$theme_colors['danger-subtle']    = __( 'Danger Subtle', 'ayecode-connect' );
1056
		$theme_colors['warning-subtle']   = __( 'Warning Subtle', 'ayecode-connect' );
1057
		$theme_colors['info-subtle']      = __( 'Info Subtle', 'ayecode-connect' );
1058
		$theme_colors['light-subtle']     = __( 'Light Subtle', 'ayecode-connect' );
1059
		$theme_colors['dark-subtle']      = __( 'Dark Subtle', 'ayecode-connect' );
1060
		$theme_colors['purple-subtle']    = __( 'Purple Subtle', 'ayecode-connect' );
1061
		$theme_colors['salmon-subtle']    = __( 'Salmon Subtle', 'ayecode-connect' );
1062
		$theme_colors['cyan-subtle']      = __( 'Cyan Subtle', 'ayecode-connect' );
1063
		$theme_colors['gray-subtle']      = __( 'Gray Subtle', 'ayecode-connect' );
1064
		$theme_colors['gray-dark-subtle'] = __( 'Gray dark Subtle', 'ayecode-connect' );
1065
		$theme_colors['indigo-subtle']    = __( 'Indigo Subtle', 'ayecode-connect' );
1066
		$theme_colors['orange-subtle']    = __( 'Orange Subtle', 'ayecode-connect' );
1067
	}
1068
1069
	// for texts
1070
	if ($include_emphasis) {
1071
		$theme_colors['primary-emphasis']   = __( 'Primary Emphasis', 'ayecode-connect' );
1072
		$theme_colors['secondary-emphasis'] = __( 'Secondary Emphasis', 'ayecode-connect' );
1073
		$theme_colors['success-emphasis']   = __( 'Success Emphasis', 'ayecode-connect' );
1074
		$theme_colors['danger-emphasis']    = __( 'Danger Emphasis', 'ayecode-connect' );
1075
		$theme_colors['warning-emphasis']   = __( 'Warning Emphasis', 'ayecode-connect' );
1076
		$theme_colors['info-emphasis']      = __( 'Info Emphasis', 'ayecode-connect' );
1077
		$theme_colors['light-emphasis']     = __( 'Light Emphasis', 'ayecode-connect' );
1078
		$theme_colors['dark-emphasis']      = __( 'Dark Emphasis', 'ayecode-connect' );
1079
		$theme_colors['purple-emphasis']    = __( 'Purple Emphasis', 'ayecode-connect' );
1080
		$theme_colors['salmon-emphasis']    = __( 'Salmon Emphasis', 'ayecode-connect' );
1081
		$theme_colors['cyan-emphasis']      = __( 'Cyan Emphasis', 'ayecode-connect' );
1082
		$theme_colors['gray-emphasis']      = __( 'Gray Emphasis', 'ayecode-connect' );
1083
		$theme_colors['muted-emphasis']     = __( 'Muted Emphasis', 'ayecode-connect' );
1084
		$theme_colors['gray-dark-emphasis'] = __( 'Gray dark Emphasis', 'ayecode-connect' );
1085
		$theme_colors['indigo-emphasis']    = __( 'Indigo Emphasis', 'ayecode-connect' );
1086
		$theme_colors['orange-emphasis']    = __( 'Orange Emphasis', 'ayecode-connect' );
1087
	}
1088
1089
	if ( $include_outlines ) {
1090
		$button_only                       = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1091
		$theme_colors['outline-primary']   = __( 'Primary outline', 'ayecode-connect' ) . $button_only;
1092
		$theme_colors['outline-secondary'] = __( 'Secondary outline', 'ayecode-connect' ) . $button_only;
1093
		$theme_colors['outline-success']   = __( 'Success outline', 'ayecode-connect' ) . $button_only;
1094
		$theme_colors['outline-danger']    = __( 'Danger outline', 'ayecode-connect' ) . $button_only;
1095
		$theme_colors['outline-warning']   = __( 'Warning outline', 'ayecode-connect' ) . $button_only;
1096
		$theme_colors['outline-info']      = __( 'Info outline', 'ayecode-connect' ) . $button_only;
1097
		$theme_colors['outline-light']     = __( 'Light outline', 'ayecode-connect' ) . $button_only;
1098
		$theme_colors['outline-dark']      = __( 'Dark outline', 'ayecode-connect' ) . $button_only;
1099
		$theme_colors['outline-white']     = __( 'White outline', 'ayecode-connect' ) . $button_only;
1100
		$theme_colors['outline-purple']    = __( 'Purple outline', 'ayecode-connect' ) . $button_only;
1101
		$theme_colors['outline-salmon']    = __( 'Salmon outline', 'ayecode-connect' ) . $button_only;
1102
		$theme_colors['outline-cyan']      = __( 'Cyan outline', 'ayecode-connect' ) . $button_only;
1103
		$theme_colors['outline-gray']      = __( 'Gray outline', 'ayecode-connect' ) . $button_only;
1104
		$theme_colors['outline-gray-dark'] = __( 'Gray dark outline', 'ayecode-connect' ) . $button_only;
1105
		$theme_colors['outline-indigo']    = __( 'Indigo outline', 'ayecode-connect' ) . $button_only;
1106
		$theme_colors['outline-orange']    = __( 'Orange outline', 'ayecode-connect' ) . $button_only;
1107
	}
1108
1109
	if ( $include_branding ) {
1110
		$theme_colors = $theme_colors + sd_aui_branding_colors();
1111
	}
1112
1113
	if ( $include_translucent ) {
1114
		$button_only                           = $outline_button_only_text ? ' ' . __( '(button only)', 'ayecode-connect' ) : '';
1115
		$theme_colors['translucent-primary']   = __( 'Primary translucent', 'ayecode-connect' ) . $button_only;
1116
		$theme_colors['translucent-secondary'] = __( 'Secondary translucent', 'ayecode-connect' ) . $button_only;
1117
		$theme_colors['translucent-success']   = __( 'Success translucent', 'ayecode-connect' ) . $button_only;
1118
		$theme_colors['translucent-danger']    = __( 'Danger translucent', 'ayecode-connect' ) . $button_only;
1119
		$theme_colors['translucent-warning']   = __( 'Warning translucent', 'ayecode-connect' ) . $button_only;
1120
		$theme_colors['translucent-info']      = __( 'Info translucent', 'ayecode-connect' ) . $button_only;
1121
		$theme_colors['translucent-light']     = __( 'Light translucent', 'ayecode-connect' ) . $button_only;
1122
		$theme_colors['translucent-dark']      = __( 'Dark translucent', 'ayecode-connect' ) . $button_only;
1123
		$theme_colors['translucent-white']     = __( 'White translucent', 'ayecode-connect' ) . $button_only;
1124
		$theme_colors['translucent-purple']    = __( 'Purple translucent', 'ayecode-connect' ) . $button_only;
1125
		$theme_colors['translucent-salmon']    = __( 'Salmon translucent', 'ayecode-connect' ) . $button_only;
1126
		$theme_colors['translucent-cyan']      = __( 'Cyan translucent', 'ayecode-connect' ) . $button_only;
1127
		$theme_colors['translucent-gray']      = __( 'Gray translucent', 'ayecode-connect' ) . $button_only;
1128
		$theme_colors['translucent-gray-dark'] = __( 'Gray dark translucent', 'ayecode-connect' ) . $button_only;
1129
		$theme_colors['translucent-indigo']    = __( 'Indigo translucent', 'ayecode-connect' ) . $button_only;
1130
		$theme_colors['translucent-orange']    = __( 'Orange translucent', 'ayecode-connect' ) . $button_only;
1131
	}
1132
1133
	return apply_filters( 'sd_aui_colors', $theme_colors, $include_outlines, $include_branding );
1134
}
1135
1136
/**
1137
 * Get the AUI branding colors.
1138
 *
1139
 * @return array
1140
 */
1141
function sd_aui_branding_colors() {
1142
	return array(
1143
		'facebook'  => __( 'Facebook', 'ayecode-connect' ),
1144
		'twitter'   => __( 'Twitter', 'ayecode-connect' ),
1145
		'instagram' => __( 'Instagram', 'ayecode-connect' ),
1146
		'linkedin'  => __( 'Linkedin', 'ayecode-connect' ),
1147
		'flickr'    => __( 'Flickr', 'ayecode-connect' ),
1148
		'github'    => __( 'GitHub', 'ayecode-connect' ),
1149
		'youtube'   => __( 'YouTube', 'ayecode-connect' ),
1150
		'wordpress' => __( 'WordPress', 'ayecode-connect' ),
1151
		'google'    => __( 'Google', 'ayecode-connect' ),
1152
		'yahoo'     => __( 'Yahoo', 'ayecode-connect' ),
1153
		'vkontakte' => __( 'Vkontakte', 'ayecode-connect' ),
1154
	);
1155
}
1156
1157
1158
/**
1159
 * A helper function for container class.
1160
 *
1161
 * @param string $type
1162
 * @param array $overwrite
1163
 *
1164
 * @return array
1165
 */
1166
function sd_get_container_class_input( $type = 'container', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1166
function sd_get_container_class_input( /** @scrutinizer ignore-unused */ $type = 'container', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1167
1168
	$options = array(
1169
		'container'                                                             => __( 'container (default)', 'ayecode-connect' ),
1170
		'container-sm'                                                          => 'container-sm',
1171
		'container-md'                                                          => 'container-md',
1172
		'container-lg'                                                          => 'container-lg',
1173
		'container-xl'                                                          => 'container-xl',
1174
		'container-xxl'                                                         => 'container-xxl',
1175
		'container-fluid'                                                       => 'container-fluid',
1176
		'row'                                                                   => 'row',
1177
		'col'                                                                   => 'col',
1178
		'card'                                                                  => 'card',
1179
		'card-header'                                                           => 'card-header',
1180
		'card-img-top'                                                          => 'card-img-top',
1181
		'card-body'                                                             => 'card-body',
1182
		'card-footer'                                                           => 'card-footer',
1183
		'list-group'                                                            => 'list-group',
1184
		'list-group list-group-flush'                                           => 'list-group list-group-flush',
1185
		'list-group list-group-numbered'                                        => 'list-group list-group-numbered',
1186
		'list-group list-group-flush list-group-numbered'                       => 'list-group list-group-flush list-group-numbered',
1187
		'list-group list-group-horizontal'                                      => 'list-group list-group-horizontal',
1188
		'list-group list-group-horizontal list-group-numbered'                  => 'list-group list-group-horizontal list-group-numbered',
1189
		'list-group-item'                                                       => 'list-group-item',
1190
		''                                                                      => __( 'no container class', 'ayecode-connect' ),
1191
	);
1192
1193
	$defaults = array(
1194
		'type'     => 'select',
1195
		'title'    => __( 'Type', 'ayecode-connect' ),
1196
		'options'  => $options,
1197
		'default'  => '',
1198
		'desc_tip' => true,
1199
		'group'    => __( 'Container', 'ayecode-connect' ),
1200
	);
1201
1202
	$input = wp_parse_args( $overwrite, $defaults );
1203
1204
	return $input;
1205
}
1206
1207
/**
1208
 * A helper function for position class.
1209
 *
1210
 * @param string $type
1211
 * @param array $overwrite
1212
 *
1213
 * @return array
1214
 */
1215
function sd_get_position_class_input( $type = 'position', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1215
function sd_get_position_class_input( /** @scrutinizer ignore-unused */ $type = 'position', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1216
1217
	$options = array(
1218
		''                  => __( 'Default', 'ayecode-connect' ),
1219
		'position-static'   => 'static',
1220
		'position-relative' => 'relative',
1221
		'position-absolute' => 'absolute',
1222
		'position-fixed'    => 'fixed',
1223
		'position-sticky'   => 'sticky',
1224
		'fixed-top'         => 'fixed-top',
1225
		'fixed-bottom'      => 'fixed-bottom',
1226
		'sticky-top'        => 'sticky-top',
1227
	);
1228
1229
	$defaults = array(
1230
		'type'     => 'select',
1231
		'title'    => __( 'Position', 'ayecode-connect' ),
1232
		'options'  => $options,
1233
		'default'  => '',
1234
		'desc_tip' => true,
1235
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1236
	);
1237
1238
	$input = wp_parse_args( $overwrite, $defaults );
1239
1240
	return $input;
1241
}
1242
1243
/**
1244
 * @param $type
1245
 * @param $overwrite
1246
 *
1247
 * @return array
1248
 */
1249
function sd_get_absolute_position_input( $type = 'absolute_position', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1249
function sd_get_absolute_position_input( /** @scrutinizer ignore-unused */ $type = 'absolute_position', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1250
1251
	$options = array(
1252
		''              => __( 'Default', 'ayecode-connect' ),
1253
		'top-left'      => 'top-left',
1254
		'top-center'    => 'top-center',
1255
		'top-right'     => 'top-right',
1256
		'center-left'   => 'middle-left',
1257
		'center'        => 'center',
1258
		'center-right'  => 'middle-right',
1259
		'bottom-left'   => 'bottom-left',
1260
		'bottom-center' => 'bottom-center',
1261
		'bottom-right'  => 'bottom-right',
1262
	);
1263
1264
	$defaults = array(
1265
		'type'            => 'select',
1266
		'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1267
		'options'         => $options,
1268
		'default'         => '',
1269
		'desc_tip'        => true,
1270
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1271
		'element_require' => '[%position%]=="position-absolute"',
1272
	);
1273
1274
	$input = wp_parse_args( $overwrite, $defaults );
1275
1276
	return $input;
1277
}
1278
1279
/**
1280
 * A helper function for sticky offset input.
1281
 *
1282
 * @param string $type
1283
 * @param array $overwrite
1284
 *
1285
 * @return array
1286
 */
1287
function sd_get_sticky_offset_input( $type = 'top', $overwrite = array() ) {
1288
1289
	$defaults = array(
1290
		'type'            => 'number',
1291
		'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1292
		//'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1293
		'default'         => '',
1294
		'desc_tip'        => true,
1295
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1296
		'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1297
	);
1298
1299
	// title
1300
	if ( $type == 'top' ) {
1301
		$defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1302
		$defaults['icon']  = 'box-top';
1303
		$defaults['row']   = array(
1304
			'title' => __( 'Sticky offset', 'ayecode-connect' ),
1305
			'key'   => 'sticky-offset',
1306
			'open'  => true,
1307
			'class' => 'text-center',
1308
		);
1309
	} elseif ( $type == 'bottom' ) {
1310
		$defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1311
		$defaults['icon']  = 'box-bottom';
1312
		$defaults['row']   = array(
1313
			'key'   => 'sticky-offset',
1314
			'close' => true,
1315
		);
1316
	}
1317
1318
	$input = wp_parse_args( $overwrite, $defaults );
1319
1320
	return $input;
1321
}
1322
1323
/**
1324
 * A helper function for font size
1325
 *
1326
 * @param string $type
1327
 * @param array $overwrite
1328
 *
1329
 * @return array
1330
 */
1331
function sd_get_font_size_input( $type = 'font_size', $overwrite = array(), $has_custom = false ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1331
function sd_get_font_size_input( /** @scrutinizer ignore-unused */ $type = 'font_size', $overwrite = array(), $has_custom = false ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1332
	global $aui_bs5;
1333
1334
	$options[] = __( 'Inherit from parent', 'ayecode-connect' );
0 ignored issues
show
Comprehensibility Best Practice introduced by
$options was never initialized. Although not strictly required by PHP, it is generally a good practice to add $options = array(); before regardless.
Loading history...
1335
	if ( $aui_bs5 ) {
1336
		// responsive font sizes
1337
		$options['fs-base'] = 'fs-base (body default)';
1338
		$options['fs-6']    = 'fs-6';
1339
		$options['fs-5']    = 'fs-5';
1340
		$options['fs-4']    = 'fs-4';
1341
		$options['fs-3']    = 'fs-3';
1342
		$options['fs-2']    = 'fs-2';
1343
		$options['fs-1']    = 'fs-1';
1344
1345
		// custom
1346
		$options['fs-lg']  = 'fs-lg';
1347
		$options['fs-sm']  = 'fs-sm';
1348
		$options['fs-xs']  = 'fs-xs';
1349
		$options['fs-xxs'] = 'fs-xxs';
1350
1351
	}
1352
1353
	$options = $options + array(
1354
			'h6'        => 'h6',
1355
			'h5'        => 'h5',
1356
			'h4'        => 'h4',
1357
			'h3'        => 'h3',
1358
			'h2'        => 'h2',
1359
			'h1'        => 'h1',
1360
			'display-1' => 'display-1',
1361
			'display-2' => 'display-2',
1362
			'display-3' => 'display-3',
1363
			'display-4' => 'display-4',
1364
		);
1365
1366
	if ( $aui_bs5 ) {
1367
		$options['display-5'] = 'display-5';
1368
		$options['display-6'] = 'display-6';
1369
	}
1370
1371
	if ( $has_custom ) {
1372
		$options['custom'] = __( 'Custom size', 'ayecode-connect' );
1373
	}
1374
1375
	$defaults = array(
1376
		'type'     => 'select',
1377
		'title'    => __( 'Font size', 'ayecode-connect' ),
1378
		'options'  => $options,
1379
		'default'  => '',
1380
		'desc_tip' => true,
1381
		'group'    => __( 'Typography', 'ayecode-connect' ),
1382
	);
1383
1384
	$input = wp_parse_args( $overwrite, $defaults );
1385
1386
	return $input;
1387
}
1388
1389
/**
1390
 * A helper function for custom font size.
1391
 *
1392
 * @param string $type
1393
 * @param array $overwrite
1394
 *
1395
 * @return array
1396
 */
1397
function sd_get_font_custom_size_input( $type = 'font_size_custom', $overwrite = array(), $parent_type = '' ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1397
function sd_get_font_custom_size_input( /** @scrutinizer ignore-unused */ $type = 'font_size_custom', $overwrite = array(), $parent_type = '' ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1398
1399
	$defaults = array(
1400
		'type'              => 'number',
1401
		'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1402
		'default'           => '',
1403
		'placeholder'       => '1.25',
1404
		'custom_attributes' => array(
1405
			'step' => '0.1',
1406
			'min'  => '0',
1407
			'max'  => '100',
1408
		),
1409
		'desc_tip'          => true,
1410
		'group'             => __( 'Typography', 'ayecode-connect' ),
1411
	);
1412
1413
	if ( $parent_type ) {
1414
		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1415
	}
1416
1417
	$input = wp_parse_args( $overwrite, $defaults );
1418
1419
	return $input;
1420
}
1421
1422
/**
1423
 * A helper function for custom font size.
1424
 *
1425
 * @param string $type
1426
 * @param array $overwrite
1427
 *
1428
 * @return array
1429
 */
1430
function sd_get_font_line_height_input( $type = 'font_line_height', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1430
function sd_get_font_line_height_input( /** @scrutinizer ignore-unused */ $type = 'font_line_height', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1431
1432
	$defaults = array(
1433
		'type'              => 'number',
1434
		'title'             => __( 'Font Line Height', 'ayecode-connect' ),
1435
		'default'           => '',
1436
		'placeholder'       => '1.75',
1437
		'custom_attributes' => array(
1438
			'step' => '0.1',
1439
			'min'  => '0',
1440
			'max'  => '100',
1441
		),
1442
		'desc_tip'          => true,
1443
		'group'             => __( 'Typography', 'ayecode-connect' ),
1444
	);
1445
1446
	$input = wp_parse_args( $overwrite, $defaults );
1447
1448
	return $input;
1449
}
1450
1451
/**
1452
 * A helper function for font size inputs.
1453
 *
1454
 * @param string $type
1455
 * @param array $overwrite
1456
 *
1457
 * @return array
1458
 */
1459
function sd_get_font_size_input_group( $type = 'font_size', $overwrite = array(), $overwrite_custom = array() ) {
1460
1461
	$inputs = array();
1462
1463
	if ( $overwrite !== false ) {
0 ignored issues
show
introduced by
The condition $overwrite !== false is always true.
Loading history...
1464
		$inputs[ $type ] = sd_get_font_size_input( $type, $overwrite, true );
1465
	}
1466
1467
	if ( $overwrite_custom !== false ) {
1468
		$custom            = $type . '_custom';
1469
		$inputs[ $custom ] = sd_get_font_custom_size_input( $custom, $overwrite_custom, $type );
1470
	}
1471
1472
	return $inputs;
1473
}
1474
1475
/**
1476
 * A helper function for font weight.
1477
 *
1478
 * @param string $type
1479
 * @param array $overwrite
1480
 *
1481
 * @return array
1482
 */
1483
function sd_get_font_weight_input( $type = 'font_weight', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1483
function sd_get_font_weight_input( /** @scrutinizer ignore-unused */ $type = 'font_weight', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1484
1485
	$options = array(
1486
		''                                => __( 'Inherit', 'ayecode-connect' ),
1487
		'font-weight-bold'                => 'bold',
1488
		'font-weight-bolder'              => 'bolder',
1489
		'font-weight-normal'              => 'normal',
1490
		'font-weight-light'               => 'light',
1491
		'font-weight-lighter'             => 'lighter',
1492
		'font-italic'                     => 'italic',
1493
		'font-weight-bold font-italic'    => 'bold italic',
1494
		'font-weight-bolder font-italic'  => 'bolder italic',
1495
		'font-weight-normal font-italic'  => 'normal italic',
1496
		'font-weight-light font-italic'   => 'light italic',
1497
		'font-weight-lighter font-italic' => 'lighter italic',
1498
	);
1499
1500
	$defaults = array(
1501
		'type'     => 'select',
1502
		'title'    => __( 'Appearance', 'ayecode-connect' ),
1503
		'options'  => $options,
1504
		'default'  => '',
1505
		'desc_tip' => true,
1506
		'group'    => __( 'Typography', 'ayecode-connect' ),
1507
	);
1508
1509
	$input = wp_parse_args( $overwrite, $defaults );
1510
1511
	return $input;
1512
}
1513
1514
/**
1515
 * A helper function for font case class.
1516
 *
1517
 * @param $type
1518
 * @param $overwrite
1519
 *
1520
 * @return array
1521
 */
1522
function sd_get_font_case_input( $type = 'font_weight', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1522
function sd_get_font_case_input( /** @scrutinizer ignore-unused */ $type = 'font_weight', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1523
1524
	$options = array(
1525
		''                => __( 'Default', 'ayecode-connect' ),
1526
		'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1527
		'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1528
		'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1529
	);
1530
1531
	$defaults = array(
1532
		'type'     => 'select',
1533
		'title'    => __( 'Letter case', 'ayecode-connect' ),
1534
		'options'  => $options,
1535
		'default'  => '',
1536
		'desc_tip' => true,
1537
		'group'    => __( 'Typography', 'ayecode-connect' ),
1538
	);
1539
1540
	$input = wp_parse_args( $overwrite, $defaults );
1541
1542
	return $input;
1543
}
1544
1545
/**
1546
 * @param string $type
1547
 * @param array $overwrite
1548
 *
1549
 * @return array
1550
 * @todo remove this as now included above.
1551
 * A helper function for font size
1552
 *
1553
 */
1554
function sd_get_font_italic_input( $type = 'font_italic', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1554
function sd_get_font_italic_input( /** @scrutinizer ignore-unused */ $type = 'font_italic', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1555
1556
	$options = array(
1557
		''            => __( 'No', 'ayecode-connect' ),
1558
		'font-italic' => __( 'Yes', 'ayecode-connect' ),
1559
	);
1560
1561
	$defaults = array(
1562
		'type'     => 'select',
1563
		'title'    => __( 'Font italic', 'ayecode-connect' ),
1564
		'options'  => $options,
1565
		'default'  => '',
1566
		'desc_tip' => true,
1567
		'group'    => __( 'Typography', 'ayecode-connect' ),
1568
	);
1569
1570
	$input = wp_parse_args( $overwrite, $defaults );
1571
1572
	return $input;
1573
}
1574
1575
/**
1576
 * A helper function for the anchor input.
1577
 *
1578
 * @param $type
1579
 * @param $overwrite
1580
 *
1581
 * @return array
1582
 */
1583
function sd_get_anchor_input( $type = 'anchor', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1583
function sd_get_anchor_input( /** @scrutinizer ignore-unused */ $type = 'anchor', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1584
1585
	$defaults = array(
1586
		'type'     => 'text',
1587
		'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1588
		'desc'     => __( 'Enter a word or two — without spaces — to make a unique web address just for this block, called an “anchor.” Then, you’ll be able to link directly to this section of your page.', 'ayecode-connect' ),
1589
		'default'  => '',
1590
		'desc_tip' => true,
1591
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1592
	);
1593
1594
	$input = wp_parse_args( $overwrite, $defaults );
1595
1596
	return $input;
1597
}
1598
1599
/**
1600
 * A helper function for the class input.
1601
 *
1602
 * @param $type
1603
 * @param $overwrite
1604
 *
1605
 * @return array
1606
 */
1607
function sd_get_class_input( $type = 'css_class', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1607
function sd_get_class_input( /** @scrutinizer ignore-unused */ $type = 'css_class', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1608
1609
	$defaults = array(
1610
		'type'     => 'text',
1611
		'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1612
		'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1613
		'default'  => '',
1614
		'desc_tip' => true,
1615
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1616
	);
1617
1618
	$input = wp_parse_args( $overwrite, $defaults );
1619
1620
	return $input;
1621
}
1622
1623
/**
1624
 * A helper function for the class input.
1625
 *
1626
 * @param $type
1627
 * @param $overwrite
1628
 *
1629
 * @return array
1630
 */
1631
function sd_get_custom_name_input( $type = 'metadata_name', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1631
function sd_get_custom_name_input( /** @scrutinizer ignore-unused */ $type = 'metadata_name', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1632
1633
	$defaults = array(
1634
		'type'     => 'text',
1635
		'title'    => __( 'Block Name', 'ayecode-connect' ),
1636
		'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1637
		'default'  => '',
1638
		'desc_tip' => true,
1639
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1640
	);
1641
1642
	$input = wp_parse_args( $overwrite, $defaults );
1643
1644
	return $input;
1645
}
1646
1647
/**
1648
 * A helper function for font size inputs.
1649
 *
1650
 * @param string $type
1651
 * @param array $overwrite
1652
 *
1653
 * @return array
1654
 */
1655
function sd_get_hover_animations_input( $type = 'hover_animations', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1655
function sd_get_hover_animations_input( /** @scrutinizer ignore-unused */ $type = 'hover_animations', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1656
1657
	$options = array(
1658
		''                 => __( 'none', 'ayecode-connect' ),
1659
		'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1660
		'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1661
		'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1662
		'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1663
		'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1664
		'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1665
	);
1666
1667
	$defaults = array(
1668
		'type'     => 'select',
1669
		'multiple' => true,
1670
		'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1671
		'options'  => $options,
1672
		'default'  => '',
1673
		'desc_tip' => true,
1674
		'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1675
	);
1676
1677
	$input = wp_parse_args( $overwrite, $defaults );
1678
1679
	return $input;
1680
}
1681
1682
1683
function sd_get_flex_align_items_input( $type = 'align-items', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1683
function sd_get_flex_align_items_input( /** @scrutinizer ignore-unused */ $type = 'align-items', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1684
	$device_size = '';
1685
	if ( ! empty( $overwrite['device_type'] ) ) {
1686
		if ( $overwrite['device_type'] == 'Tablet' ) {
1687
			$device_size = '-md';
1688
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1689
			$device_size = '-lg';
1690
		}
1691
	}
1692
	$options = array(
1693
		''                                         => __( 'Default', 'ayecode-connect' ),
1694
		'align-items' . $device_size . '-start'    => 'align-items-start',
1695
		'align-items' . $device_size . '-end'      => 'align-items-end',
1696
		'align-items' . $device_size . '-center'   => 'align-items-center',
1697
		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1698
		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1699
	);
1700
1701
	$defaults = array(
1702
		'type'            => 'select',
1703
		'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1704
		'options'         => $options,
1705
		'default'         => '',
1706
		'desc_tip'        => true,
1707
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1708
		'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1709
1710
	);
1711
1712
	$input = wp_parse_args( $overwrite, $defaults );
1713
1714
	return $input;
1715
}
1716
1717
function sd_get_flex_align_items_input_group( $type = 'flex_align_items', $overwrite = array() ) {
1718
	$inputs = array();
1719
	$sizes  = array(
1720
		''    => 'Mobile',
1721
		'_md' => 'Tablet',
1722
		'_lg' => 'Desktop',
1723
	);
1724
1725
	if ( $overwrite !== false ) {
1726
1727
		foreach ( $sizes as $ds => $dt ) {
1728
			$overwrite['device_type'] = $dt;
1729
			$inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1730
		}
1731
	}
1732
1733
	return $inputs;
1734
}
1735
1736
function sd_get_flex_justify_content_input( $type = 'flex_justify_content', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1736
function sd_get_flex_justify_content_input( /** @scrutinizer ignore-unused */ $type = 'flex_justify_content', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1737
	$device_size = '';
1738
	if ( ! empty( $overwrite['device_type'] ) ) {
1739
		if ( $overwrite['device_type'] == 'Tablet' ) {
1740
			$device_size = '-md';
1741
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1742
			$device_size = '-lg';
1743
		}
1744
	}
1745
	$options = array(
1746
		''                                            => __( 'Default', 'ayecode-connect' ),
1747
		'justify-content' . $device_size . '-start'   => 'justify-content-start',
1748
		'justify-content' . $device_size . '-end'     => 'justify-content-end',
1749
		'justify-content' . $device_size . '-center'  => 'justify-content-center',
1750
		'justify-content' . $device_size . '-between' => 'justify-content-between',
1751
		'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1752
	);
1753
1754
	$defaults = array(
1755
		'type'            => 'select',
1756
		'title'           => __( 'Justify content', 'ayecode-connect' ),
1757
		'options'         => $options,
1758
		'default'         => '',
1759
		'desc_tip'        => true,
1760
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1761
		'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1762
1763
	);
1764
1765
	$input = wp_parse_args( $overwrite, $defaults );
1766
1767
	return $input;
1768
}
1769
1770
function sd_get_flex_justify_content_input_group( $type = 'flex_justify_content', $overwrite = array() ) {
1771
	$inputs = array();
1772
	$sizes  = array(
1773
		''    => 'Mobile',
1774
		'_md' => 'Tablet',
1775
		'_lg' => 'Desktop',
1776
	);
1777
1778
	if ( $overwrite !== false ) {
1779
1780
		foreach ( $sizes as $ds => $dt ) {
1781
			$overwrite['device_type'] = $dt;
1782
			$inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1783
		}
1784
	}
1785
1786
	return $inputs;
1787
}
1788
1789
1790
function sd_get_flex_align_self_input( $type = 'flex_align_self', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1790
function sd_get_flex_align_self_input( /** @scrutinizer ignore-unused */ $type = 'flex_align_self', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1791
	$device_size = '';
1792
	if ( ! empty( $overwrite['device_type'] ) ) {
1793
		if ( $overwrite['device_type'] == 'Tablet' ) {
1794
			$device_size = '-md';
1795
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1796
			$device_size = '-lg';
1797
		}
1798
	}
1799
	$options = array(
1800
		''                                         => __( 'Default', 'ayecode-connect' ),
1801
		'align-items' . $device_size . '-start'    => 'align-items-start',
1802
		'align-items' . $device_size . '-end'      => 'align-items-end',
1803
		'align-items' . $device_size . '-center'   => 'align-items-center',
1804
		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1805
		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1806
	);
1807
1808
	$defaults = array(
1809
		'type'            => 'select',
1810
		'title'           => __( 'Align Self', 'ayecode-connect' ),
1811
		'options'         => $options,
1812
		'default'         => '',
1813
		'desc_tip'        => true,
1814
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1815
		'element_require' => ' [%container%]=="col" ',
1816
1817
	);
1818
1819
	$input = wp_parse_args( $overwrite, $defaults );
1820
1821
	return $input;
1822
}
1823
1824
function sd_get_flex_align_self_input_group( $type = 'flex_align_self', $overwrite = array() ) {
1825
	$inputs = array();
1826
	$sizes  = array(
1827
		''    => 'Mobile',
1828
		'_md' => 'Tablet',
1829
		'_lg' => 'Desktop',
1830
	);
1831
1832
	if ( $overwrite !== false ) {
1833
1834
		foreach ( $sizes as $ds => $dt ) {
1835
			$overwrite['device_type'] = $dt;
1836
			$inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1837
		}
1838
	}
1839
1840
	return $inputs;
1841
}
1842
1843
function sd_get_flex_order_input( $type = 'flex_order', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1843
function sd_get_flex_order_input( /** @scrutinizer ignore-unused */ $type = 'flex_order', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1844
	$device_size = '';
1845
	if ( ! empty( $overwrite['device_type'] ) ) {
1846
		if ( $overwrite['device_type'] == 'Tablet' ) {
1847
			$device_size = '-md';
1848
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1849
			$device_size = '-lg';
1850
		}
1851
	}
1852
	$options = array(
1853
		'' => __( 'Default', 'ayecode-connect' ),
1854
	);
1855
1856
	$i = 0;
1857
	while ( $i <= 5 ) {
1858
		$options[ 'order' . $device_size . '-' . $i ] = $i;
1859
		$i++;
1860
	}
1861
1862
	$defaults = array(
1863
		'type'            => 'select',
1864
		'title'           => __( 'Flex Order', 'ayecode-connect' ),
1865
		'options'         => $options,
1866
		'default'         => '',
1867
		'desc_tip'        => true,
1868
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1869
		'element_require' => ' [%container%]=="col" ',
1870
1871
	);
1872
1873
	$input = wp_parse_args( $overwrite, $defaults );
1874
1875
	return $input;
1876
}
1877
1878
function sd_get_flex_order_input_group( $type = 'flex_order', $overwrite = array() ) {
1879
	$inputs = array();
1880
	$sizes  = array(
1881
		''    => 'Mobile',
1882
		'_md' => 'Tablet',
1883
		'_lg' => 'Desktop',
1884
	);
1885
1886
	if ( $overwrite !== false ) {
1887
1888
		foreach ( $sizes as $ds => $dt ) {
1889
			$overwrite['device_type'] = $dt;
1890
			$inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1891
		}
1892
	}
1893
1894
	return $inputs;
1895
}
1896
1897
function sd_get_flex_wrap_group( $type = 'flex_wrap', $overwrite = array() ) {
1898
	$inputs = array();
1899
	$sizes  = array(
1900
		''    => 'Mobile',
1901
		'_md' => 'Tablet',
1902
		'_lg' => 'Desktop',
1903
	);
1904
1905
	if ( $overwrite !== false ) {
1906
1907
		foreach ( $sizes as $ds => $dt ) {
1908
			$overwrite['device_type'] = $dt;
1909
			$inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1910
		}
1911
	}
1912
1913
	return $inputs;
1914
}
1915
1916
function sd_get_flex_wrap_input( $type = 'flex_wrap', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1916
function sd_get_flex_wrap_input( /** @scrutinizer ignore-unused */ $type = 'flex_wrap', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1917
	$device_size = '';
1918
	if ( ! empty( $overwrite['device_type'] ) ) {
1919
		if ( $overwrite['device_type'] == 'Tablet' ) {
1920
			$device_size = '-md';
1921
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1922
			$device_size = '-lg';
1923
		}
1924
	}
1925
	$options = array(
1926
		''                                      => __( 'Default', 'ayecode-connect' ),
1927
		'flex' . $device_size . '-nowrap'       => 'nowrap',
1928
		'flex' . $device_size . '-wrap'         => 'wrap',
1929
		'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1930
	);
1931
1932
	$defaults = array(
1933
		'type'     => 'select',
1934
		'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1935
		'options'  => $options,
1936
		'default'  => '',
1937
		'desc_tip' => true,
1938
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1939
	);
1940
1941
	$input = wp_parse_args( $overwrite, $defaults );
1942
1943
	return $input;
1944
}
1945
1946
function sd_get_float_group( $type = 'float', $overwrite = array() ) {
1947
	$inputs = array();
1948
	$sizes  = array(
1949
		''    => 'Mobile',
1950
		'_md' => 'Tablet',
1951
		'_lg' => 'Desktop',
1952
	);
1953
1954
	if ( $overwrite !== false ) {
1955
1956
		foreach ( $sizes as $ds => $dt ) {
1957
			$overwrite['device_type'] = $dt;
1958
			$inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1959
		}
1960
	}
1961
1962
	return $inputs;
1963
}
1964
function sd_get_float_input( $type = 'float', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

1964
function sd_get_float_input( /** @scrutinizer ignore-unused */ $type = 'float', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
1965
	$device_size = '';
1966
	if ( ! empty( $overwrite['device_type'] ) ) {
1967
		if ( $overwrite['device_type'] == 'Tablet' ) {
1968
			$device_size = '-md';
1969
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1970
			$device_size = '-lg';
1971
		}
1972
	}
1973
	$options = array(
1974
		''                                      => __( 'Default', 'ayecode-connect' ),
1975
		'float' . $device_size . '-start'       => 'left',
1976
		'float' . $device_size . '-end'         => 'right',
1977
		'float' . $device_size . '-none' => 'none',
1978
	);
1979
1980
	$defaults = array(
1981
		'type'     => 'select',
1982
		'title'    => __( 'Float', 'ayecode-connect' ),
1983
		'options'  => $options,
1984
		'default'  => '',
1985
		'desc_tip' => true,
1986
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1987
	);
1988
1989
	$input = wp_parse_args( $overwrite, $defaults );
1990
1991
	return $input;
1992
}
1993
1994
/**
1995
 * @param $type
1996
 * @param $overwrite
1997
 *
1998
 * @return array
1999
 */
2000
function sd_get_zindex_input( $type = 'zindex', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2000
function sd_get_zindex_input( /** @scrutinizer ignore-unused */ $type = 'zindex', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2001
2002
	$options = array(
2003
		''          => __( 'Default', 'ayecode-connect' ),
2004
		'zindex-0'  => '0',
2005
		'zindex-1'  => '1',
2006
		'zindex-5'  => '5',
2007
		'zindex-10' => '10',
2008
	);
2009
2010
	$defaults = array(
2011
		'type'     => 'select',
2012
		'title'    => __( 'Z-index', 'ayecode-connect' ),
2013
		'options'  => $options,
2014
		'default'  => '',
2015
		'desc_tip' => true,
2016
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2017
	);
2018
2019
	$input = wp_parse_args( $overwrite, $defaults );
2020
2021
	return $input;
2022
}
2023
2024
/**
2025
 * @param $type
2026
 * @param $overwrite
2027
 *
2028
 * @return array
2029
 */
2030
function sd_get_overflow_input( $type = 'overflow', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2030
function sd_get_overflow_input( /** @scrutinizer ignore-unused */ $type = 'overflow', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2031
2032
	$options = array(
2033
		''                 => __( 'Default', 'ayecode-connect' ),
2034
		'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2035
		'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2036
		'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2037
		'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2038
	);
2039
2040
	$defaults = array(
2041
		'type'     => 'select',
2042
		'title'    => __( 'Overflow', 'ayecode-connect' ),
2043
		'options'  => $options,
2044
		'default'  => '',
2045
		'desc_tip' => true,
2046
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2047
	);
2048
2049
	$input = wp_parse_args( $overwrite, $defaults );
2050
2051
	return $input;
2052
}
2053
2054
/**
2055
 * @param $type
2056
 * @param $overwrite
2057
 *
2058
 * @return array
2059
 */
2060
function sd_get_max_height_input( $type = 'max_height', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2060
function sd_get_max_height_input( /** @scrutinizer ignore-unused */ $type = 'max_height', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2061
2062
	$defaults = array(
2063
		'type'        => 'text',
2064
		'title'       => __( 'Max height', 'ayecode-connect' ),
2065
		'value'       => '',
2066
		'default'     => '',
2067
		'placeholder' => '',
2068
		'desc_tip'    => true,
2069
		'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2070
	);
2071
2072
	$input = wp_parse_args( $overwrite, $defaults );
2073
2074
	return $input;
2075
}
2076
2077
/**
2078
 * @param $type
2079
 * @param $overwrite
2080
 *
2081
 * @return array
2082
 */
2083
function sd_get_scrollbars_input( $type = 'scrollbars', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2083
function sd_get_scrollbars_input( /** @scrutinizer ignore-unused */ $type = 'scrollbars', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2084
2085
	$options = array(
2086
		''               => __( 'Default', 'ayecode-connect' ),
2087
		'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2088
	);
2089
2090
	$defaults = array(
2091
		'type'     => 'select',
2092
		'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2093
		'options'  => $options,
2094
		'default'  => '',
2095
		'desc_tip' => true,
2096
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2097
	);
2098
2099
	$input = wp_parse_args( $overwrite, $defaults );
2100
2101
	return $input;
2102
}
2103
2104
/**
2105
 * @param $type
2106
 * @param $overwrite
2107
 *
2108
 * @return array
2109
 */
2110
function sd_get_new_window_input( $type = 'target', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2110
function sd_get_new_window_input( /** @scrutinizer ignore-unused */ $type = 'target', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2111
2112
	$defaults = array(
2113
		'type'     => 'checkbox',
2114
		'title'    => __( 'Open in new window', 'ayecode-connect' ),
2115
		'default'  => '',
2116
		'desc_tip' => true,
2117
		'group'    => __( 'Link', 'ayecode-connect' ),
2118
	);
2119
2120
	$input = wp_parse_args( $overwrite, $defaults );
2121
2122
	return $input;
2123
}
2124
2125
/**
2126
 * @param $type
2127
 * @param $overwrite
2128
 *
2129
 * @return array
2130
 */
2131
function sd_get_nofollow_input( $type = 'nofollow', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2131
function sd_get_nofollow_input( /** @scrutinizer ignore-unused */ $type = 'nofollow', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2132
2133
	$defaults = array(
2134
		'type'     => 'checkbox',
2135
		'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2136
		'default'  => '',
2137
		'desc_tip' => true,
2138
		'group'    => __( 'Link', 'ayecode-connect' ),
2139
	);
2140
2141
	$input = wp_parse_args( $overwrite, $defaults );
2142
2143
	return $input;
2144
}
2145
2146
/**
2147
 * A helper function for width inputs.
2148
 *
2149
 * @param string $type
2150
 * @param array $overwrite
2151
 *
2152
 * @return array
2153
 */
2154
function sd_get_width_input( $type = 'width', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2154
function sd_get_width_input( /** @scrutinizer ignore-unused */ $type = 'width', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2155
2156
	$device_size = '';
2157
	if ( ! empty( $overwrite['device_type'] ) ) {
2158
		if ( $overwrite['device_type'] == 'Tablet' ) {
2159
			$device_size = '-md';
2160
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2161
			$device_size = '-lg';
2162
		}
2163
	}
2164
	$options = array(
2165
		'' => __('Default', 'ayecode-connect'),
2166
		'w' . $device_size . '-25' => '25%',
2167
		'w' . $device_size . '-50' => '50%',
2168
		'w' . $device_size . '-75' => '75%',
2169
		'w' . $device_size . '-100' => '100%',
2170
		'w' . $device_size . '-auto' => 'auto',
2171
	);
2172
2173
	$defaults = array(
2174
		'type'     => 'select',
2175
		'title'    => __( 'Width', 'ayecode-connect' ),
2176
		'options'  => $options,
2177
		'default'  => '',
2178
		'desc_tip' => true,
2179
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2180
	);
2181
2182
	$input = wp_parse_args( $overwrite, $defaults );
2183
2184
	return $input;
2185
}
2186
2187
/**
2188
 * A helper function for height inputs.
2189
 *
2190
 * @param string $type
2191
 * @param array $overwrite
2192
 *
2193
 * @return array
2194
 */
2195
function sd_get_height_input( $type = 'height', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2195
function sd_get_height_input( /** @scrutinizer ignore-unused */ $type = 'height', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2196
2197
	$device_size = '';
2198
	if ( ! empty( $overwrite['device_type'] ) ) {
2199
		if ( $overwrite['device_type'] == 'Tablet' ) {
2200
			$device_size = '-md';
2201
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2202
			$device_size = '-lg';
2203
		}
2204
	}
2205
	$options = array(
2206
		'' => __('Default', 'ayecode-connect'),
2207
		'h' . $device_size . '-25' => '25%',
2208
		'h' . $device_size . '-50' => '50%',
2209
		'h' . $device_size . '-75' => '75%',
2210
		'h' . $device_size . '-100' => '100%',
2211
		'h' . $device_size . '-auto' => 'auto',
2212
	);
2213
2214
	$defaults = array(
2215
		'type'     => 'select',
2216
		'title'    => __( 'Height', 'ayecode-connect' ),
2217
		'options'  => $options,
2218
		'default'  => '',
2219
		'desc_tip' => true,
2220
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2221
	);
2222
2223
	$input = wp_parse_args( $overwrite, $defaults );
2224
2225
	return $input;
2226
}
2227
2228
/**
2229
 * @param $type
2230
 * @param $overwrite
2231
 *
2232
 * @return array
2233
 */
2234
function sd_get_attributes_input( $type = 'attributes', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2234
function sd_get_attributes_input( /** @scrutinizer ignore-unused */ $type = 'attributes', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2235
2236
	$defaults = array(
2237
		'type'        => 'text',
2238
		'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2239
		'value'       => '',
2240
		'default'     => '',
2241
		'placeholder' => 'key|value,key2|value2',
2242
		'desc_tip'    => true,
2243
		'group'       => __( 'Link', 'ayecode-connect' ),
2244
	);
2245
2246
	$input = wp_parse_args( $overwrite, $defaults );
2247
2248
	return $input;
2249
}
2250
2251
/**
2252
 * @param $args
2253
 *
2254
 * @return string
2255
 */
2256
function sd_build_attributes_string_escaped( $args ) {
2257
	global $aui_bs5;
2258
2259
	$attributes = array();
2260
	$string_escaped = '';
2261
2262
	if ( ! empty( $args['custom'] ) ) {
2263
		$attributes = sd_parse_custom_attributes($args['custom']);
2264
	}
2265
2266
	// new window
2267
	if ( ! empty( $args['new_window'] ) ) {
2268
		$attributes['target'] = '_blank';
2269
	}
2270
2271
	// nofollow
2272
	if ( ! empty( $args['nofollow'] ) ) {
2273
		$attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2274
	}
2275
2276
	if(!empty($attributes )){
2277
		foreach ( $attributes as $key => $val ) {
2278
			$string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2279
		}
2280
	}
2281
2282
	return $string_escaped;
2283
}
2284
2285
/**
2286
 * @info borrowed from elementor
2287
 *
2288
 * @param $attributes_string
2289
 * @param $delimiter
2290
 *
2291
 * @return array
2292
 */
2293
function sd_parse_custom_attributes( $attributes_string, $delimiter = ',' ) {
2294
	$attributes = explode( $delimiter, $attributes_string );
2295
	$result = [];
2296
2297
	foreach ( $attributes as $attribute ) {
2298
		$attr_key_value = explode( '|', $attribute );
2299
2300
		$attr_key = mb_strtolower( $attr_key_value[0] );
2301
2302
		// Remove any not allowed characters.
2303
		preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2304
2305
		if ( empty( $attr_key_matches[0] ) ) {
2306
			continue;
2307
		}
2308
2309
		$attr_key = $attr_key_matches[0];
2310
2311
		// Avoid Javascript events and unescaped href.
2312
		if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2313
			continue;
2314
		}
2315
2316
		if ( isset( $attr_key_value[1] ) ) {
2317
			$attr_value = trim( $attr_key_value[1] );
2318
		} else {
2319
			$attr_value = '';
2320
		}
2321
2322
		$result[ $attr_key ] = $attr_value;
2323
	}
2324
2325
	return $result;
2326
}
2327
2328
/**
2329
 * Build AUI classes from settings.
2330
 *
2331
 * @param $args
2332
 *
2333
 * @return string
2334
 * @todo find best way to use px- py- or general p-
2335
 */
2336
function sd_build_aui_class( $args ) {
2337
	global $aui_bs5;
2338
2339
	$classes = array();
2340
2341
	if ( $aui_bs5 ) {
2342
		$p_ml = 'ms-';
2343
		$p_mr = 'me-';
2344
2345
		$p_pl = 'ps-';
2346
		$p_pr = 'pe-';
2347
	} else {
2348
		$p_ml = 'ml-';
2349
		$p_mr = 'mr-';
2350
2351
		$p_pl = 'pl-';
2352
		$p_pr = 'pr-';
2353
	}
2354
2355
	// margins.
2356
	if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2357
		$classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2358
		$mt        = $args['mt'];
2359
	} else {
2360
		$mt = null;
2361
	}
2362
	if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2363
		$classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2364
		$mr        = $args['mr'];
2365
	} else {
2366
		$mr = null;
2367
	}
2368
	if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2369
		$classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2370
		$mb        = $args['mb'];
2371
	} else {
2372
		$mb = null;
2373
	}
2374
	if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2375
		$classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2376
		$ml        = $args['ml'];
2377
	} else {
2378
		$ml = null;
2379
	}
2380
2381
	// margins tablet.
2382
	if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2383
		$classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2384
		$mt_md     = $args['mt_md'];
2385
	} else {
2386
		$mt_md = null;
2387
	}
2388
	if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2389
		$classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2390
		$mt_md     = $args['mr_md'];
2391
	} else {
2392
		$mr_md = null;
2393
	}
2394
	if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2395
		$classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2396
		$mt_md     = $args['mb_md'];
2397
	} else {
2398
		$mb_md = null;
2399
	}
2400
	if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2401
		$classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2402
		$mt_md     = $args['ml_md'];
2403
	} else {
2404
		$ml_md = null;
2405
	}
2406
2407
	// margins desktop.
2408
	if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2409
		if ( $mt == null && $mt_md == null ) {
2410
			$classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2411
		} else {
2412
			$classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2413
		}
2414
	}
2415
	if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2416
		if ( $mr == null && $mr_md == null ) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $mr_md does not seem to be defined for all execution paths leading up to this point.
Loading history...
2417
			$classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2418
		} else {
2419
			$classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2420
		}
2421
	}
2422
	if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2423
		if ( $mb == null && $mb_md == null ) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $mb_md does not seem to be defined for all execution paths leading up to this point.
Loading history...
2424
			$classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2425
		} else {
2426
			$classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2427
		}
2428
	}
2429
	if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2430
		if ( $ml == null && $ml_md == null ) {
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $ml_md does not seem to be defined for all execution paths leading up to this point.
Loading history...
2431
			$classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2432
		} else {
2433
			$classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2434
		}
2435
	}
2436
2437
	// padding.
2438
	if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2439
		$classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2440
		$pt        = $args['pt'];
2441
	} else {
2442
		$pt = null;
2443
	}
2444
	if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2445
		$classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2446
		$pr        = $args['pr'];
2447
	} else {
2448
		$pr = null;
2449
	}
2450
	if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2451
		$classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2452
		$pb        = $args['pb'];
2453
	} else {
2454
		$pb = null;
2455
	}
2456
	if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2457
		$classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2458
		$pl        = $args['pl'];
2459
	} else {
2460
		$pl = null;
2461
	}
2462
2463
	// padding tablet.
2464
	if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2465
		$classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2466
		$pt_md     = $args['pt_md'];
2467
	} else {
2468
		$pt_md = null;
2469
	}
2470
	if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2471
		$classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2472
		$pr_md     = $args['pr_md'];
2473
	} else {
2474
		$pr_md = null;
2475
	}
2476
	if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2477
		$classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2478
		$pb_md     = $args['pb_md'];
2479
	} else {
2480
		$pb_md = null;
2481
	}
2482
	if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2483
		$classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2484
		$pl_md     = $args['pl_md'];
2485
	} else {
2486
		$pl_md = null;
2487
	}
2488
2489
	// padding desktop.
2490
	if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2491
		if ( $pt == null && $pt_md == null ) {
2492
			$classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2493
		} else {
2494
			$classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2495
		}
2496
	}
2497
	if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2498
		if ( $pr == null && $pr_md == null ) {
2499
			$classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2500
		} else {
2501
			$classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2502
		}
2503
	}
2504
	if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2505
		if ( $pb == null && $pb_md == null ) {
2506
			$classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2507
		} else {
2508
			$classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2509
		}
2510
	}
2511
	if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2512
		if ( $pl == null && $pl_md == null ) {
2513
			$classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2514
		} else {
2515
			$classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2516
		}
2517
	}
2518
2519
	// row cols, mobile, tablet, desktop
2520
	if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2521
		$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2522
		$row_cols  = $args['row_cols'];
2523
	} else {
2524
		$row_cols = null;
2525
	}
2526
	if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2527
		$classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2528
		$row_cols_md = $args['row_cols_md'];
2529
	} else {
2530
		$row_cols_md = null;
2531
	}
2532
	if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2533
		if ( $row_cols == null && $row_cols_md == null ) {
2534
			$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2535
		} else {
2536
			$classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2537
		}
2538
	}
2539
2540
	// columns , mobile, tablet, desktop
2541
	if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2542
		$classes[] = sanitize_html_class( 'col-' . $args['col'] );
2543
		$col       = $args['col'];
2544
	} else {
2545
		$col = null;
2546
	}
2547
	if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2548
		$classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2549
		$col_md    = $args['col_md'];
2550
	} else {
2551
		$col_md = null;
2552
	}
2553
	if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2554
		if ( $col == null && $col_md == null ) {
2555
			$classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2556
		} else {
2557
			$classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2558
		}
2559
	}
2560
2561
	// border
2562
	if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2563
		$classes[] = 'border-0';
2564
	} elseif ( ! empty( $args['border'] ) ) {
2565
		$border_class = 'border';
2566
		if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2567
			$border_class = '';
2568
		}
2569
		$classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2570
	}
2571
2572
	// border radius type
2573
	if ( ! empty( $args['rounded'] ) ) {
2574
		$classes[] = sanitize_html_class( $args['rounded'] );
2575
	}
2576
2577
	// border radius size BS4
2578
	if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2579
		$classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2580
		// if we set a size then we need to remove "rounded" if set
2581
		if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2582
			unset( $classes[ $key ] );
2583
		}
2584
	} else {
2585
2586
		// border radius size , mobile, tablet, desktop
2587
		if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2588
			$classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2589
			$rounded_size = $args['rounded_size'];
2590
		} else {
2591
			$rounded_size = null;
2592
		}
2593
		if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2594
			$classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2595
			$rounded_size_md = $args['rounded_size_md'];
2596
		} else {
2597
			$rounded_size_md = null;
2598
		}
2599
		if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2600
			if ( $rounded_size == null && $rounded_size_md == null ) {
2601
				$classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2602
			} else {
2603
				$classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2604
			}
2605
		}
2606
	}
2607
2608
	// shadow
2609
	//if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2610
2611
	// background
2612
	if ( ! empty( $args['bg'] ) ) {
2613
		$classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2614
	}
2615
2616
	// background image fixed bg_image_fixed this helps fix a iOS bug
2617
	if ( ! empty( $args['bg_image_fixed'] ) ) {
2618
		$classes[] = 'bg-image-fixed';
2619
	}
2620
2621
	// text_color
2622
	if ( ! empty( $args['text_color'] ) ) {
2623
		$classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2624
	}
2625
2626
	// text_align
2627
	if ( ! empty( $args['text_justify'] ) ) {
2628
		$classes[] = 'text-justify';
2629
	} else {
2630
		if ( ! empty( $args['text_align'] ) ) {
2631
			$classes[]  = sanitize_html_class( $args['text_align'] );
2632
			$text_align = $args['text_align'];
2633
		} else {
2634
			$text_align = null;
2635
		}
2636
		if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2637
			$classes[]     = sanitize_html_class( $args['text_align_md'] );
2638
			$text_align_md = $args['text_align_md'];
2639
		} else {
2640
			$text_align_md = null;
2641
		}
2642
		if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2643
			if ( $text_align == null && $text_align_md == null ) {
2644
				$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2645
			} else {
2646
				$classes[] = sanitize_html_class( $args['text_align_lg'] );
2647
			}
2648
		}
2649
	}
2650
2651
	// display
2652
	if ( ! empty( $args['display'] ) ) {
2653
		$classes[] = sanitize_html_class( $args['display'] );
2654
		$display   = $args['display'];
2655
	} else {
2656
		$display = null;
2657
	}
2658
	if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2659
		$classes[]  = sanitize_html_class( $args['display_md'] );
2660
		$display_md = $args['display_md'];
2661
	} else {
2662
		$display_md = null;
2663
	}
2664
	if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2665
		if ( $display == null && $display_md == null ) {
2666
			$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2667
		} else {
2668
			$classes[] = sanitize_html_class( $args['display_lg'] );
2669
		}
2670
	}
2671
2672
	// bgtus - background transparent until scroll
2673
	if ( ! empty( $args['bgtus'] ) ) {
2674
		$classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2675
	}
2676
2677
	// cscos - change color scheme on scroll
2678
	if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2679
		$classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2680
	}
2681
2682
	// hover animations
2683
	if ( ! empty( $args['hover_animations'] ) ) {
2684
		$classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2685
	}
2686
2687
	// absolute_position
2688
	if ( ! empty( $args['absolute_position'] ) ) {
2689
		if ( 'top-left' === $args['absolute_position'] ) {
2690
			$classes[] = 'start-0 top-0';
2691
		} elseif ( 'top-center' === $args['absolute_position'] ) {
2692
			$classes[] = 'start-50 top-0 translate-middle';
2693
		} elseif ( 'top-right' === $args['absolute_position'] ) {
2694
			$classes[] = 'end-0 top-0';
2695
		} elseif ( 'center-left' === $args['absolute_position'] ) {
2696
			$classes[] = 'start-0 top-50';
2697
		} elseif ( 'center' === $args['absolute_position'] ) {
2698
			$classes[] = 'start-50 top-50 translate-middle';
2699
		} elseif ( 'center-right' === $args['absolute_position'] ) {
2700
			$classes[] = 'end-0 top-50';
2701
		} elseif ( 'bottom-left' === $args['absolute_position'] ) {
2702
			$classes[] = 'start-0 bottom-0';
2703
		} elseif ( 'bottom-center' === $args['absolute_position'] ) {
2704
			$classes[] = 'start-50 bottom-0 translate-middle';
2705
		} elseif ( 'bottom-right' === $args['absolute_position'] ) {
2706
			$classes[] = 'end-0 bottom-0';
2707
		}
2708
	}
2709
2710
	// build classes from build keys
2711
	$build_keys = sd_get_class_build_keys();
0 ignored issues
show
Bug introduced by
Are you sure the assignment to $build_keys is correct as sd_get_class_build_keys() seems to always return null.

This check looks for function or method calls that always return null and whose return value is assigned to a variable.

class A
{
    function getObject()
    {
        return null;
    }

}

$a = new A();
$object = $a->getObject();

The method getObject() can return nothing but null, so it makes no sense to assign that value to a variable.

The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.

Loading history...
2712
	if ( ! empty( $build_keys ) ) {
2713
		foreach ( $build_keys as $key ) {
0 ignored issues
show
Bug introduced by
The expression $build_keys of type void is not traversable.
Loading history...
2714
2715
			if ( substr( $key, -4 ) == '-MTD' ) {
2716
2717
				$k = str_replace( '-MTD', '', $key );
2718
2719
				// Mobile, Tablet, Desktop
2720
				if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2721
					$classes[] = sanitize_html_class( $args[ $k ] );
2722
					$v         = $args[ $k ];
2723
				} else {
2724
					$v = null;
2725
				}
2726
				if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2727
					$classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2728
					$v_md      = $args[ $k . '_md' ];
2729
				} else {
2730
					$v_md = null;
2731
				}
2732
				if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2733
					if ( $v == null && $v_md == null ) {
2734
						$classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2735
					} else {
2736
						$classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2737
					}
2738
				}
2739
			} else {
2740
				if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2741
					continue;
2742
				}
2743
				if ( ! empty( $args[ $key ] ) ) {
2744
					$classes[] = sd_sanitize_html_classes( $args[ $key ] );
2745
				}
2746
			}
2747
		}
2748
	}
2749
2750
	if ( ! empty( $classes ) ) {
2751
		$classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2752
	}
2753
2754
	return implode( ' ', $classes );
2755
}
2756
2757
/**
2758
 * Build Style output from arguments.
2759
 *
2760
 * @param $args
2761
 *
2762
 * @return array
2763
 */
2764
function sd_build_aui_styles( $args ) {
2765
2766
	$styles = array();
2767
2768
	// background color
2769
	if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2770
		if ( $args['bg'] == 'custom-color' ) {
2771
			$styles['background-color'] = $args['bg_color'];
2772
		} elseif ( $args['bg'] == 'custom-gradient' ) {
2773
			$styles['background-image'] = $args['bg_gradient'];
2774
2775
			// use background on text.
2776
			if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2777
				$styles['background-clip']         = 'text';
2778
				$styles['-webkit-background-clip'] = 'text';
2779
				$styles['text-fill-color']         = 'transparent';
2780
				$styles['-webkit-text-fill-color'] = 'transparent';
2781
			}
2782
		}
2783
	}
2784
2785
	if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2786
		$hasImage = true;
2787
		if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2788
			$styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2789
			$styles['background-blend-mode'] = 'overlay';
2790
		} elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2791
			$styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2792
		} elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2793
			// do nothing as we alreay have a preset
2794
			$hasImage = false;
2795
		} else {
2796
			$styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2797
		}
2798
2799
		if ( $hasImage ) {
2800
			$styles['background-size'] = 'cover';
2801
2802
			if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2803
				$styles['background-attachment'] = 'fixed';
2804
			}
2805
		}
2806
2807
		if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2808
			$styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2809
		}
2810
	}
2811
2812
	// sticky offset top
2813
	if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2814
		$styles['top'] = absint( $args['sticky_offset_top'] );
2815
	}
2816
2817
	// sticky offset bottom
2818
	if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2819
		$styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2820
	}
2821
2822
	// font size
2823
	if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2824
		$styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2825
	}
2826
2827
	// font color
2828
	if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2829
		$styles['color'] = esc_attr( $args['text_color_custom'] );
2830
	}
2831
2832
	// font line height
2833
	if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2834
		$styles['line-height'] = esc_attr( $args['font_line_height'] );
2835
	}
2836
2837
	// max height
2838
	if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2839
		$styles['max-height'] = esc_attr( $args['max_height'] );
2840
	}
2841
2842
	$style_string = '';
2843
	if ( ! empty( $styles ) ) {
2844
		foreach ( $styles as $key => $val ) {
2845
			$style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2846
		}
2847
	}
2848
2849
	return $style_string;
0 ignored issues
show
Bug Best Practice introduced by
The expression return $style_string returns the type string which is incompatible with the documented return type array.
Loading history...
2850
2851
}
2852
2853
/**
2854
 * Build the hover styles from args.
2855
 *
2856
 * @param $args
2857
 * @param $is_preview
2858
 *
2859
 * @return string
2860
 */
2861
function sd_build_hover_styles( $args, $is_preview = false ) {
2862
	$rules = '';
2863
	// text color
2864
	if ( ! empty( $args['styleid'] ) ) {
2865
		$styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2866
2867
		// text
2868
		if ( ! empty( $args['text_color_hover'] ) ) {
2869
			$key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2870
			$color  = sd_get_color_from_var( $args[ $key ] );
2871
			$rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2872
		}
2873
2874
		// bg
2875
		if ( ! empty( $args['bg_hover'] ) ) {
2876
			if ( 'custom-gradient' === $args['bg_hover'] ) {
2877
				$color  = $args['bg_hover_gradient'];
2878
				$rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2879
				$rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2880
			} else {
2881
				$key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2882
				$color  = sd_get_color_from_var( $args[ $key ] );
2883
				$rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2884
				$rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2885
			}
2886
		}
2887
	}
2888
2889
	return $rules ? '<style>' . $rules . '</style>' : '';
2890
}
2891
2892
/**
2893
 * Try to get a CSS color variable for a given value.
2894
 *
2895
 * @param $var
2896
 *
2897
 * @return mixed|string
2898
 */
2899
function sd_get_color_from_var( $var ) {
2900
2901
	//sanitize_hex_color() @todo this does not cover transparency
2902
	if ( strpos( $var, '#' ) === false ) {
2903
		$var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2904
	}
2905
2906
	return $var;
2907
}
2908
2909
/**
2910
 * Sanitize single or multiple HTML classes.
2911
 *
2912
 * @param $classes
2913
 * @param $sep
2914
 *
2915
 * @return string
2916
 */
2917
function sd_sanitize_html_classes( $classes, $sep = ' ' ) {
2918
	$return = '';
2919
2920
	if ( ! is_array( $classes ) ) {
2921
		$classes = explode( $sep, $classes );
2922
	}
2923
2924
	if ( ! empty( $classes ) ) {
2925
		foreach ( $classes as $class ) {
2926
			$return .= sanitize_html_class( $class ) . ' ';
2927
		}
2928
	}
2929
2930
	return $return;
2931
}
2932
2933
2934
/**
2935
 * Keys that are used for the class builder.
2936
 *
2937
 * @return void
2938
 */
2939
function sd_get_class_build_keys() {
2940
	$keys = array(
2941
		'container',
2942
		'position',
2943
		'flex_direction',
2944
		'shadow',
2945
		'rounded',
2946
		'nav_style',
2947
		'horizontal_alignment',
2948
		'nav_fill',
2949
		'width',
2950
		'font_weight',
2951
		'font_size',
2952
		'font_case',
2953
		'css_class',
2954
		'flex_align_items-MTD',
2955
		'flex_justify_content-MTD',
2956
		'flex_align_self-MTD',
2957
		'flex_order-MTD',
2958
		'styleid',
2959
		'border_opacity',
2960
		'border_width',
2961
		'border_type',
2962
		'opacity',
2963
		'zindex',
2964
		'flex_wrap-MTD',
2965
		'h100',
2966
		'overflow',
2967
		'scrollbars',
2968
		'float-MTD',
2969
		'height-MTD',
2970
		'width-MTD'
2971
	);
2972
2973
	return apply_filters( 'sd_class_build_keys', $keys );
0 ignored issues
show
Bug Best Practice introduced by
The expression return apply_filters('sd...ass_build_keys', $keys) also could return the type array<integer,string> which is incompatible with the documented return type void.
Loading history...
2974
}
2975
2976
/**
2977
 * This is a placeholder function for the visibility conditions input.
2978
 *
2979
 * @param $type
2980
 * @param $overwrite
2981
 *
2982
 * @return array
2983
 */
2984
function sd_get_visibility_conditions_input( $type = 'visibility_conditions', $overwrite = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $type is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

2984
function sd_get_visibility_conditions_input( /** @scrutinizer ignore-unused */ $type = 'visibility_conditions', $overwrite = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
2985
	$defaults = array(
2986
		'type'         => 'visibility_conditions',
2987
		'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2988
		'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2989
		'default'      => '',
2990
		'desc_tip'     => true,
2991
		'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2992
	);
2993
2994
	$input = wp_parse_args( $overwrite, $defaults );
2995
2996
	return $input;
2997
}
2998
2999
/**
3000
 * Get a array of user roles.
3001
 *
3002
 *
3003
 *
3004
 * @param array $exclude An array of roles to exclude from the return array.
3005
 * @return array An array of roles.
3006
 */
3007
function sd_user_roles_options( $exclude = array() ) {
3008
	$user_roles = array();
3009
3010
	if ( !function_exists('get_editable_roles') ) {
3011
		require_once( ABSPATH . '/wp-admin/includes/user.php' );
3012
	}
3013
3014
	$roles = get_editable_roles();
3015
3016
	foreach ( $roles as $role => $data ) {
3017
		if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3018
			$user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3019
		}
3020
	}
3021
3022
	// Logged out as a custom role.
3023
	$user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3024
3025
	return apply_filters( 'sd_user_roles_options', $user_roles );
3026
}
3027
3028
/**
3029
 * Get visibility conditions rule options.
3030
 *
3031
 *
3032
 *
3033
 * @return array Rule options.
3034
 */
3035
function sd_visibility_rules_options() {
3036
	$options = array(
3037
		'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3038
		'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3039
		'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3040
		'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3041
	);
3042
3043
	if ( class_exists( 'GeoDirectory' ) ) {
3044
		$options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3045
	}
3046
3047
	return apply_filters( 'sd_visibility_rules_options', $options );
3048
}
3049
3050
/**
3051
 * Get visibility GD field options.
3052
 *
3053
 * @return array
3054
 */
3055
function sd_visibility_gd_field_options() {
3056
	$fields = geodir_post_custom_fields( '', 'all', 'all', 'none' );
0 ignored issues
show
Bug introduced by
The function geodir_post_custom_fields was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3056
	$fields = /** @scrutinizer ignore-call */ geodir_post_custom_fields( '', 'all', 'all', 'none' );
Loading history...
3057
3058
	$keys = array();
3059
	if ( ! empty( $fields ) ) {
3060
		foreach( $fields as $field ) {
3061
			if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3062
				continue;
3063
			}
3064
3065
			$keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3066
3067
			// Extra address fields
3068
			if ( $field['htmlvar_name'] == 'address' && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
0 ignored issues
show
Bug introduced by
The function geodir_post_meta_address_fields was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3068
			if ( $field['htmlvar_name'] == 'address' && ( $address_fields = /** @scrutinizer ignore-call */ geodir_post_meta_address_fields( '' ) ) ) {
Loading history...
3069
				foreach ( $address_fields as $_field => $args ) {
3070
					if ( $_field != 'map_directions' && $_field != 'street' ) {
3071
						$keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3072
					}
3073
				}
3074
			}
3075
		}
3076
	}
3077
3078
	$standard_fields = sd_visibility_gd_standard_field_options();
3079
3080
	if ( ! empty( $standard_fields ) ) {
3081
		foreach ( $standard_fields as $key => $option ) {
3082
			$keys[ $key ] = $option;
3083
		}
3084
	}
3085
3086
	$options = apply_filters( 'geodir_badge_field_keys', $keys );
3087
3088
	return apply_filters( 'sd_visibility_gd_field_options', $options );
3089
}
3090
3091
/**
3092
 * Get visibility GD post standard field options.
3093
 *
3094
 * @return array
3095
 */
3096
function sd_visibility_gd_standard_field_options( $post_type = '' ) {
3097
	$fields = sd_visibility_gd_standard_fields( $post_type );
3098
3099
	$options = array();
3100
3101
	foreach ( $fields as $key => $field ) {
3102
		if ( ! empty( $field['frontend_title'] ) ) {
3103
			$options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3104
		}
3105
	}
3106
3107
	return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3108
}
3109
3110
/**
3111
 * Get visibility GD post standard fields.
3112
 *
3113
 * @return array
3114
 */
3115
function sd_visibility_gd_standard_fields( $post_type = '' ) {
3116
	$standard_fields = geodir_post_meta_standard_fields( $post_type );
0 ignored issues
show
Bug introduced by
The function geodir_post_meta_standard_fields was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3116
	$standard_fields = /** @scrutinizer ignore-call */ geodir_post_meta_standard_fields( $post_type );
Loading history...
3117
3118
	$fields = array();
3119
3120
	foreach ( $standard_fields as $key => $field ) {
3121
		if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3122
			$fields[ $key ] = $field;
3123
		}
3124
	}
3125
3126
	return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3127
}
3128
3129
/**
3130
 * Get visibility field conditions options.
3131
 *
3132
 * @return array
3133
 */
3134
function sd_visibility_field_condition_options(){
3135
	$options = array(
3136
		'is_empty' => __( 'is empty', 'ayecode-connect' ),
3137
		'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3138
		'is_equal' => __( 'is equal', 'ayecode-connect' ),
3139
		'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3140
		'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3141
		'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3142
		'is_contains' => __( 'is contains', 'ayecode-connect' ),
3143
		'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3144
	);
3145
3146
	return apply_filters( 'sd_visibility_field_condition_options', $options );
3147
}
3148
3149
/**
3150
 * Get visibility conditions output options.
3151
 *
3152
 *
3153
 *
3154
 * @return array Template type options.
3155
 */
3156
function sd_visibility_output_options() {
3157
	$options = array(
3158
		''              => __( 'Show Block', 'ayecode-connect' ),
3159
		'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3160
		'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3161
		'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3162
		'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3163
	);
3164
3165
	return apply_filters( 'sd_visibility_output_options', $options );
3166
}
3167
3168
/**
3169
 * Get the template page options.
3170
 *
3171
 *
3172
 *
3173
 * @param array $args Array of arguments.
3174
 * @return array Template page options.
3175
 */
3176
function sd_template_page_options( $args = array() ) {
3177
	global $wpdb, $sd_tmpl_page_options;
3178
3179
	$defaults = array(
3180
		'nocache' => false,
3181
		'with_slug' => false,
3182
		'default_label' => __( 'Select Page...', 'ayecode-connect' )
3183
	);
3184
3185
	$args = wp_parse_args( $args, $defaults );
3186
3187
	if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3188
		return $sd_tmpl_page_options;
3189
	}
3190
3191
	$exclude_pages = array();
3192
	if ( $page_on_front = get_option( 'page_on_front' ) ) {
3193
		$exclude_pages[] = $page_on_front;
3194
	}
3195
3196
	if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3197
		$exclude_pages[] = $page_for_posts;
3198
	}
3199
3200
	$exclude_pages_placeholders = '';
3201
	if ( ! empty( $exclude_pages ) ) {
3202
		// Sanitize the array of excluded pages and implode it for the SQL query.
3203
		$exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3204
	}
3205
3206
	// Prepare the base SQL query.
3207
	$sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3208
3209
	// Add the exclusion if there are pages to exclude
3210
	if ( ! empty( $exclude_pages ) ) {
3211
		$sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3212
	}
3213
3214
	// Add sorting.
3215
	$sql .= " ORDER BY post_title ASC";
3216
3217
	// Add a limit.
3218
	$limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3219
3220
	if ( $limit > 0 ) {
3221
		$sql .= " LIMIT " . (int) $limit;
3222
	}
3223
3224
	// Prepare the SQL query to include the excluded pages only if we have placeholders.
3225
	$pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3226
3227
	if ( ! empty( $args['default_label'] ) ) {
3228
		$options = array( '' => $args['default_label'] );
3229
	} else {
3230
		$options = array();
3231
	}
3232
3233
	if ( ! empty( $pages ) ) {
3234
		foreach ( $pages as $page ) {
3235
			$title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3236
3237
			$options[ $page->ID ] = $title;
3238
		}
3239
	}
3240
3241
	$sd_tmpl_page_options = $options;
3242
3243
	return apply_filters( 'sd_template_page_options', $options, $args );
3244
}
3245
3246
/**
3247
 * Get the template part options.
3248
 *
3249
 *
3250
 *
3251
 * @param array $args Array of arguments.
3252
 * @return array Template part options.
3253
 */
3254
function sd_template_part_options( $args = array() ) {
3255
	global $sd_tmpl_part_options;
3256
3257
	if ( ! empty( $sd_tmpl_part_options ) ) {
3258
		return $sd_tmpl_part_options;
3259
	}
3260
3261
	$options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3262
3263
	$parts = get_block_templates( array(), 'wp_template_part' );
3264
3265
	if ( ! empty( $parts ) ) {
3266
		foreach ( $parts as $part ) {
3267
			$options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3268
		}
3269
	}
3270
3271
	$sd_tmpl_part_options = $options;
3272
3273
	return apply_filters( 'sd_template_part_options', $options, $args );
3274
}
3275
3276
/**
3277
 * Get the template part by slug.
3278
 *
3279
 *
3280
 *
3281
 * @param string $slug Template slug.
3282
 * @return array Template part object.
3283
 */
3284
function sd_get_template_part_by_slug( $slug ) {
3285
	global $bs_tmpl_part_by_slug;
3286
3287
	if ( empty( $bs_tmpl_part_by_slug ) ) {
3288
		$bs_tmpl_part_by_slug = array();
3289
	}
3290
3291
	if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3292
		return $bs_tmpl_part_by_slug[ $slug ];
3293
	}
3294
3295
	$template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3296
3297
	$query_post = ! empty( $template_query ) ? $template_query[0] : array();
3298
3299
	$template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3300
3301
	$bs_tmpl_part_by_slug[ $slug ] = $template_part;
3302
3303
	return apply_filters( 'sd_get_template_part_by_slug', $template_part, $slug );
0 ignored issues
show
Bug Best Practice introduced by
The expression return apply_filters('sd... $template_part, $slug) also could return the type WP_Block_Template which is incompatible with the documented return type array.
Loading history...
3304
}
3305
3306
/**
3307
 * Filters the content of a single block.
3308
 *
3309
 *
3310
 *
3311
 * @param string   $block_content The block content.
3312
 * @param array    $block         The full block, including name and attributes.
3313
 * @param WP_Block $instance      The block instance.
3314
 */
3315
function sd_render_block( $block_content, $block, $instance = '' ) {
3316
	// No block visibility conditions set.
3317
	if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3318
		return $block_content;
3319
	}
3320
3321
	$attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3322
	$rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3323
3324
	// remove rules with missing validators.
3325
	$valid_rules = sd_visibility_rules_options();
3326
3327
	if ( ! empty( $rules ) ) {
3328
		foreach ( $rules as $key => $rule ) {
3329
			if ( ! isset( $valid_rules[ $rule['type'] ] ) ) {
3330
				unset( $rules[ $key ] );
3331
			}
3332
		}
3333
	}
3334
3335
	// No rules set.
3336
	if ( empty( $rules ) ) {
3337
		return $block_content;
3338
	}
3339
3340
	$check_rules = null;
3341
	$_block_content = $block_content;
3342
3343
	if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3344
		$check_rules = sd_block_check_rules( $rules );
3345
3346
		if ( $check_rules ) {
3347
			$output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3348
		} else {
3349
			$output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3350
		}
3351
3352
		if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3353
			switch ( $output_condition['type'] ) {
3354
				case 'hide':
3355
					$valid_type = true;
3356
					$content = '';
3357
3358
					break;
3359
				case 'message':
3360
					$valid_type = true;
3361
3362
					if ( isset( $output_condition['message'] ) ) {
3363
						$content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3364
3365
						if ( ! empty( $output_condition['message_type'] ) ) {
3366
							$content = aui()->alert( array(
3367
									'type'=> $output_condition['message_type'],
3368
									'content'=> $content
3369
								)
3370
							);
3371
						}
3372
					}
3373
3374
					break;
3375
				case 'page':
3376
					$valid_type = true;
3377
3378
					$page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3379
					$content = sd_get_page_content( $page_id );
3380
3381
					break;
3382
				case 'template_part':
3383
					$valid_type = true;
3384
3385
					$template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3386
					$content = sd_get_template_part_content( $template_part );
3387
3388
					break;
3389
				default:
3390
					$valid_type = false;
3391
					break;
3392
			}
3393
3394
			if ( $valid_type ) {
3395
				$block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-rule' . ( $output_condition['type'] == 'hide' ? ' sd-block-hide-rule' : '' ) . '">' . $content . '</div>';
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $content does not seem to be defined for all execution paths leading up to this point.
Loading history...
3396
			}
3397
		}
3398
	}
3399
3400
	return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3401
}
3402
add_filter( 'render_block', 'sd_render_block', 9, 3 );
3403
3404
function sd_get_page_content( $page_id ) {
3405
	$content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3406
3407
	// Maybe bypass content
3408
	$bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3409
	if ( $bypass_content ) {
3410
		return $bypass_content;
3411
	}
3412
3413
	// Run the shortcodes on the content.
3414
	$content = do_shortcode( $content );
3415
3416
	// Run block content if its available.
3417
	if ( function_exists( 'do_blocks' ) ) {
3418
		$content = do_blocks( $content );
3419
	}
3420
3421
	return apply_filters( 'sd_get_page_content', $content, $page_id );
3422
}
3423
3424
function sd_get_template_part_content( $template_part ) {
3425
	$template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3426
	$content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3427
3428
	// Maybe bypass content
3429
	$bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3430
	if ( $bypass_content ) {
3431
		return $bypass_content;
3432
	}
3433
3434
	// Run the shortcodes on the content.
3435
	$content = do_shortcode( $content );
3436
3437
	// Run block content if its available.
3438
	if ( function_exists( 'do_blocks' ) ) {
3439
		$content = do_blocks( $content );
3440
	}
3441
3442
	return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3443
}
3444
3445
function sd_block_parse_rules( $attrs ) {
3446
	$rules = array();
3447
3448
	if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3449
		$attrs_keys = array_keys( $attrs );
3450
3451
		for ( $i = 1; $i <= count( $attrs_keys ); $i++ ) {
0 ignored issues
show
Performance Best Practice introduced by
It seems like you are calling the size function count() as part of the test condition. You might want to compute the size beforehand, and not on each iteration.

If the size of the collection does not change during the iteration, it is generally a good practice to compute it beforehand, and not on each iteration:

for ($i=0; $i<count($array); $i++) { // calls count() on each iteration
}

// Better
for ($i=0, $c=count($array); $i<$c; $i++) { // calls count() just once
}
Loading history...
3452
			if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3453
				$rules[] = $attrs[ 'rule' . $i ];
3454
			}
3455
		}
3456
	}
3457
3458
	return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3459
}
3460
3461
function sd_block_check_rules( $rules ) {
3462
	if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3463
		return true;
3464
	}
3465
3466
	foreach ( $rules as $key => $rule ) {
3467
		$match = apply_filters( 'sd_block_check_rule', true, $rule );
3468
3469
		if ( ! $match ) {
3470
			break;
3471
		}
3472
	}
3473
3474
	return apply_filters( 'sd_block_check_rules', $match, $rules );
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable $match seems to be defined by a foreach iteration on line 3466. Are you sure the iterator is never empty, otherwise this variable is not defined?
Loading history...
3475
}
3476
3477
function sd_block_check_rule( $match, $rule ) {
3478
	global $post;
3479
3480
	if ( $match && ! empty( $rule['type'] ) ) {
3481
		switch ( $rule['type'] ) {
3482
			case 'logged_in':
3483
				$match = (bool) is_user_logged_in();
3484
3485
				break;
3486
			case 'logged_out':
3487
				$match = ! is_user_logged_in();
3488
3489
				break;
3490
			case 'post_author':
3491
				if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3492
					$match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3493
				} else {
3494
					$match = false;
3495
				}
3496
3497
				break;
3498
			case 'user_roles':
3499
				$match = false;
3500
3501
				if ( ! empty( $rule['user_roles'] ) ) {
3502
					$user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3503
3504
					if ( is_array( $user_roles ) ) {
3505
						$user_roles = array_filter( array_map( 'trim', $user_roles ) );
3506
					}
3507
3508
					if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3509
						if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3510
							$current_user_roles = $current_user->roles;
3511
3512
							foreach ( $user_roles as $role ) {
3513
								if ( in_array( $role, $current_user_roles ) ) {
3514
									$match = true;
3515
								}
3516
							}
3517
						} else {
3518
							// Logged out role.
3519
							if ( in_array( 'logged_out', $user_roles ) ) {
3520
								$match = true;
3521
							}
3522
						}
3523
					}
3524
				}
3525
3526
				break;
3527
			case 'gd_field':
3528
				$match = sd_block_check_rule_gd_field( $rule );
3529
3530
				break;
3531
3532
			default:
3533
				$match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3534
				break;
3535
		}
3536
	}
3537
3538
	return $match;
3539
}
3540
add_filter( 'sd_block_check_rule', 'sd_block_check_rule', 10, 2 );
3541
3542
function sd_block_check_rule_gd_field( $rule ) {
3543
	global $gd_post;
3544
3545
	$match_found = false;
3546
3547
	if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3548
		$args['block_visibility'] = true;
0 ignored issues
show
Comprehensibility Best Practice introduced by
$args was never initialized. Although not strictly required by PHP, it is generally a good practice to add $args = array(); before regardless.
Loading history...
3549
		$args['key'] = $rule['field'];
3550
		$args['condition'] = $rule['condition'];
3551
		$args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3552
3553
		if ( $args['key'] == 'street' ) {
3554
			$args['key'] = 'address';
3555
		}
3556
3557
		$match_field = $_match_field = $args['key'];
3558
3559
		if ( $match_field == 'address' ) {
3560
			$match_field = 'street';
3561
		} elseif ( $match_field == 'post_images' ) {
3562
			$match_field = 'featured_image';
3563
		}
3564
3565
		$find_post = $gd_post;
3566
		$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3567
3568
		if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3569
			$find_post = geodir_get_post_info( (int) $find_post->ID );
0 ignored issues
show
Bug introduced by
The function geodir_get_post_info was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3569
			$find_post = /** @scrutinizer ignore-call */ geodir_get_post_info( (int) $find_post->ID );
Loading history...
3570
			$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3571
		}
3572
3573
		if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3574
			$address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3575
			$field = array();
3576
			$empty_field = false;
3577
3578
			$standard_fields = sd_visibility_gd_standard_fields();
3579
3580
			if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3581
				$package_id = geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
0 ignored issues
show
Bug introduced by
The function geodir_get_post_package_id was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3581
				$package_id = /** @scrutinizer ignore-call */ geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
Loading history...
3582
				$fields = geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
0 ignored issues
show
Bug introduced by
The function geodir_post_custom_fields was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3582
				$fields = /** @scrutinizer ignore-call */ geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
Loading history...
3583
3584
				foreach ( $fields as $field_info ) {
3585
					if ( $match_field == $field_info['htmlvar_name'] ) {
3586
						$field = $field_info;
3587
						break;
3588
					} elseif( $_match_field == $field_info['htmlvar_name'] ) {
3589
						$field = $field_info;
3590
						break;
3591
					}
3592
				}
3593
3594
				if ( empty( $field ) ) {
3595
					$empty_field = true;
3596
				}
3597
			}
3598
3599
			// Address fields.
3600
			if ( in_array( $match_field, $address_fields ) && ( $address_fields = geodir_post_meta_address_fields( '' ) ) ) {
0 ignored issues
show
Bug introduced by
The function geodir_post_meta_address_fields was not found. Maybe you did not declare it correctly or list all dependencies? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3600
			if ( in_array( $match_field, $address_fields ) && ( $address_fields = /** @scrutinizer ignore-call */ geodir_post_meta_address_fields( '' ) ) ) {
Loading history...
3601
				if ( ! empty( $address_fields[ $match_field ] ) ) {
3602
					$field = $address_fields[ $match_field ];
3603
				}
3604
			} else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3605
				if ( ! empty( $standard_fields[ $match_field ] ) ) {
3606
					$field = $standard_fields[ $match_field ];
3607
				}
3608
			}
3609
3610
			// Parse search.
3611
			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3612
3613
			$is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3614
			$is_date = apply_filters( 'geodir_post_badge_is_date', $is_date, $match_field, $field, $args, $find_post );
0 ignored issues
show
Unused Code introduced by
The assignment to $is_date is dead and can be removed.
Loading history...
3615
3616
			$match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3617
			$match_found = $match_field === '' ? true : false;
3618
3619
			if ( ! $match_found ) {
3620
				if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3621
					if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3622
						$search = '+' . $search;
3623
					}
3624
					$the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3625
					$until_time = strtotime( $the_time . ' ' . $search . ' days' );
0 ignored issues
show
Bug introduced by
Are you sure $the_time of type false|integer|string can be used in concatenation? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

3625
					$until_time = strtotime( /** @scrutinizer ignore-type */ $the_time . ' ' . $search . ' days' );
Loading history...
3626
					$now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3627
					if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3628
						$match_found = true;
3629
					} elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3630
						$match_found = true;
3631
					}
3632
				} else {
3633
					switch ( $args['condition'] ) {
3634
						case 'is_equal':
3635
							$match_found = (bool) ( $search != '' && $match_value == $search );
3636
							break;
3637
						case 'is_not_equal':
3638
							$match_found = (bool) ( $search != '' && $match_value != $search );
3639
							break;
3640
						case 'is_greater_than':
3641
							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3642
							break;
3643
						case 'is_less_than':
3644
							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3645
							break;
3646
						case 'is_empty':
3647
							$match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3648
							break;
3649
						case 'is_not_empty':
3650
							$match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3651
							break;
3652
						case 'is_contains':
3653
							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3654
							break;
3655
						case 'is_not_contains':
3656
							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3657
							break;
3658
					}
3659
				}
3660
			}
3661
3662
			$match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3663
		} else {
3664
			$field = array();
3665
3666
			// Parse search.
3667
			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3668
3669
			$match_value = '';
3670
			$match_found = $match_field === '' ? true : false;
3671
3672
			if ( ! $match_found ) {
3673
				switch ( $args['condition'] ) {
3674
					case 'is_equal':
3675
						$match_found = (bool) ( $search != '' && $match_value == $search );
3676
						break;
3677
					case 'is_not_equal':
3678
						$match_found = (bool) ( $search != '' && $match_value != $search );
3679
						break;
3680
					case 'is_greater_than':
3681
						$match_found = false;
3682
						break;
3683
					case 'is_less_than':
3684
						$match_found = false;
3685
						break;
3686
					case 'is_empty':
3687
						$match_found = true;
3688
						break;
3689
					case 'is_not_empty':
3690
						$match_found = false;
3691
						break;
3692
					case 'is_contains':
3693
						$match_found = false;
3694
						break;
3695
					case 'is_not_contains':
3696
						$match_found = false;
3697
						break;
3698
				}
3699
			}
3700
3701
			$match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3702
		}
3703
	}
3704
3705
	return $match_found;
3706
}
3707
3708
function sd_gd_field_rule_search( $search, $post_type, $rule, $field = array(), $gd_post = array() ) {
0 ignored issues
show
Unused Code introduced by
The parameter $field is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

3708
function sd_gd_field_rule_search( $search, $post_type, $rule, /** @scrutinizer ignore-unused */ $field = array(), $gd_post = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $gd_post is not used and could be removed. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-unused  annotation

3708
function sd_gd_field_rule_search( $search, $post_type, $rule, $field = array(), /** @scrutinizer ignore-unused */ $gd_post = array() ) {

This check looks for parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
3709
	global $post;
3710
3711
	if ( ! $search ) {
3712
		return $search;
3713
	}
3714
3715
	$orig_search = $search;
3716
	$_search = strtolower( $search );
3717
3718
	if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3719
		if ( $search == 'current_user' ) {
3720
			$search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3721
		} else if ( $search == 'current_author' ) {
3722
			$search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3723
		}
3724
	} else if ( $_search == 'date_today' ) {
3725
		$search = date( 'Y-m-d' );
3726
	} else if ( $_search == 'date_tomorrow' ) {
3727
		$search = date( 'Y-m-d', strtotime( "+1 day" ) );
3728
	} else if ( $_search == 'date_yesterday' ) {
3729
		$search = date( 'Y-m-d', strtotime( "-1 day" ) );
3730
	} else if ( $_search == 'time_his' ) {
3731
		$search = date( 'H:i:s' );
3732
	} else if ( $_search == 'time_hi' ) {
3733
		$search = date( 'H:i' );
3734
	} else if ( $_search == 'datetime_now' ) {
3735
		$search = date( 'Y-m-d H:i:s' );
3736
	} else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3737
		$_searches = explode( 'datetime_after_', $_search, 2 );
3738
3739
		if ( ! empty( $_searches[1] ) ) {
3740
			$search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
		} else {
3742
			$search = date( 'Y-m-d H:i:s' );
3743
		}
3744
	} else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3745
		$_searches = explode( 'datetime_before_', $_search, 2 );
3746
3747
		if ( ! empty( $_searches[1] ) ) {
3748
			$search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
		} else {
3750
			$search = date( 'Y-m-d H:i:s' );
3751
		}
3752
	} else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3753
		$_searches = explode( 'date_after_', $_search, 2 );
3754
3755
		if ( ! empty( $_searches[1] ) ) {
3756
			$search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3757
		} else {
3758
			$search = date( 'Y-m-d' );
3759
		}
3760
	} else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3761
		$_searches = explode( 'date_before_', $_search, 2 );
3762
3763
		if ( ! empty( $_searches[1] ) ) {
3764
			$search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3765
		} else {
3766
			$search = date( 'Y-m-d' );
3767
		}
3768
	}
3769
3770
	return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3771
}
3772
3773
3774
if(!function_exists('sd_blocks_render_blocks')){
3775
	/**
3776
	 * Add the shortcodes to the block content if set as an attribute.
3777
	 *
3778
	 * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3779
	 *
3780
	 * @param $block_content
3781
	 * @param $parsed_block
3782
	 * @param $thiss
3783
	 * @return mixed|string
3784
	 */
3785
	function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
3786
		// Check hide block visibility conditions.
3787
		if ( ! empty( $parsed_block ) && ! empty( $parsed_block['attrs']['visibility_conditions'] ) && $block_content && strpos( strrev( $block_content ), strrev( ' sd-block-has-rule sd-block-hide-rule"></div>' ) ) === 0 && ! empty( $thiss ) && $thiss->name ) {
3788
			$match_content = '<div class="' . esc_attr( wp_get_block_default_classname( $thiss->name ) ) . ' sd-block-has-rule sd-block-hide-rule"></div>';
3789
3790
			// Return empty content to hide block.
3791
			if ( $block_content == $match_content ) {
3792
				return '';
3793
			}
3794
		}
3795
3796
		// Check if ita a nested block that needs to be wrapped
3797
		if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3798
			$content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3799
			$block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3800
3801
			$block_content = do_shortcode($block_content);
3802
3803
		}elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3804
			$has_warp = false;
3805
			if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3806
				$parts = explode('></', $block_content);
3807
				if(count($parts) === 2){
3808
					$block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3809
					$has_warp = true;
3810
				}
3811
			}
3812
			if (!$has_warp) {
3813
				// Add the shortcode if its not a wrapped block
3814
				$block_content .= $parsed_block['attrs']['sd_shortcode'];
3815
			}
3816
3817
			$block_content = do_shortcode($block_content);
3818
		}
3819
		return  $block_content;
3820
	}
3821
}
3822
3823
add_filter('render_block', 'sd_blocks_render_blocks',10,3);
3824
3825