Passed
Push — master ( b04683...190224 )
by Stiofan
05:41
created

sd_render_block()   D

Complexity

Conditions 22

Size

Total Lines 75
Code Lines 45

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 22
eloc 45
nop 3
dl 0
loc 75
rs 4.1666
c 2
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-item' => 'list-group-item',
1185
		''                => __( 'no container class', 'ayecode-connect' ),
1186
	);
1187
1188
	$defaults = array(
1189
		'type'     => 'select',
1190
		'title'    => __( 'Type', 'ayecode-connect' ),
1191
		'options'  => $options,
1192
		'default'  => '',
1193
		'desc_tip' => true,
1194
		'group'    => __( 'Container', 'ayecode-connect' ),
1195
	);
1196
1197
	$input = wp_parse_args( $overwrite, $defaults );
1198
1199
	return $input;
1200
}
1201
1202
/**
1203
 * A helper function for position class.
1204
 *
1205
 * @param string $type
1206
 * @param array $overwrite
1207
 *
1208
 * @return array
1209
 */
1210
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

1210
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...
1211
1212
	$options = array(
1213
		''                  => __( 'Default', 'ayecode-connect' ),
1214
		'position-static'   => 'static',
1215
		'position-relative' => 'relative',
1216
		'position-absolute' => 'absolute',
1217
		'position-fixed'    => 'fixed',
1218
		'position-sticky'   => 'sticky',
1219
		'fixed-top'         => 'fixed-top',
1220
		'fixed-bottom'      => 'fixed-bottom',
1221
		'sticky-top'        => 'sticky-top',
1222
	);
1223
1224
	$defaults = array(
1225
		'type'     => 'select',
1226
		'title'    => __( 'Position', 'ayecode-connect' ),
1227
		'options'  => $options,
1228
		'default'  => '',
1229
		'desc_tip' => true,
1230
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1231
	);
1232
1233
	$input = wp_parse_args( $overwrite, $defaults );
1234
1235
	return $input;
1236
}
1237
1238
/**
1239
 * @param $type
1240
 * @param $overwrite
1241
 *
1242
 * @return array
1243
 */
1244
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

1244
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...
1245
1246
	$options = array(
1247
		''              => __( 'Default', 'ayecode-connect' ),
1248
		'top-left'      => 'top-left',
1249
		'top-center'    => 'top-center',
1250
		'top-right'     => 'top-right',
1251
		'center-left'   => 'middle-left',
1252
		'center'        => 'center',
1253
		'center-right'  => 'middle-right',
1254
		'bottom-left'   => 'bottom-left',
1255
		'bottom-center' => 'bottom-center',
1256
		'bottom-right'  => 'bottom-right',
1257
	);
1258
1259
	$defaults = array(
1260
		'type'            => 'select',
1261
		'title'           => __( 'Absolute Position', 'ayecode-connect' ),
1262
		'options'         => $options,
1263
		'default'         => '',
1264
		'desc_tip'        => true,
1265
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1266
		'element_require' => '[%position%]=="position-absolute"',
1267
	);
1268
1269
	$input = wp_parse_args( $overwrite, $defaults );
1270
1271
	return $input;
1272
}
1273
1274
/**
1275
 * A helper function for sticky offset input.
1276
 *
1277
 * @param string $type
1278
 * @param array $overwrite
1279
 *
1280
 * @return array
1281
 */
1282
function sd_get_sticky_offset_input( $type = 'top', $overwrite = array() ) {
1283
1284
	$defaults = array(
1285
		'type'            => 'number',
1286
		'title'           => __( 'Sticky offset', 'ayecode-connect' ),
1287
		//'desc' =>  __( 'Sticky offset', 'ayecode-connect' ),
1288
		'default'         => '',
1289
		'desc_tip'        => true,
1290
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1291
		'element_require' => '[%position%]=="sticky" || [%position%]=="sticky-top"',
1292
	);
1293
1294
	// title
1295
	if ( $type == 'top' ) {
1296
		$defaults['title'] = __( 'Top offset', 'ayecode-connect' );
1297
		$defaults['icon']  = 'box-top';
1298
		$defaults['row']   = array(
1299
			'title' => __( 'Sticky offset', 'ayecode-connect' ),
1300
			'key'   => 'sticky-offset',
1301
			'open'  => true,
1302
			'class' => 'text-center',
1303
		);
1304
	} elseif ( $type == 'bottom' ) {
1305
		$defaults['title'] = __( 'Bottom offset', 'ayecode-connect' );
1306
		$defaults['icon']  = 'box-bottom';
1307
		$defaults['row']   = array(
1308
			'key'   => 'sticky-offset',
1309
			'close' => true,
1310
		);
1311
	}
1312
1313
	$input = wp_parse_args( $overwrite, $defaults );
1314
1315
	return $input;
1316
}
1317
1318
/**
1319
 * A helper function for font size
1320
 *
1321
 * @param string $type
1322
 * @param array $overwrite
1323
 *
1324
 * @return array
1325
 */
1326
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

1326
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...
1327
	global $aui_bs5;
1328
1329
	$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...
1330
	if ( $aui_bs5 ) {
1331
		// responsive font sizes
1332
		$options['fs-base'] = 'fs-base (body default)';
1333
		$options['fs-6']    = 'fs-6';
1334
		$options['fs-5']    = 'fs-5';
1335
		$options['fs-4']    = 'fs-4';
1336
		$options['fs-3']    = 'fs-3';
1337
		$options['fs-2']    = 'fs-2';
1338
		$options['fs-1']    = 'fs-1';
1339
1340
		// custom
1341
		$options['fs-lg']  = 'fs-lg';
1342
		$options['fs-sm']  = 'fs-sm';
1343
		$options['fs-xs']  = 'fs-xs';
1344
		$options['fs-xxs'] = 'fs-xxs';
1345
1346
	}
1347
1348
	$options = $options + array(
1349
			'h6'        => 'h6',
1350
			'h5'        => 'h5',
1351
			'h4'        => 'h4',
1352
			'h3'        => 'h3',
1353
			'h2'        => 'h2',
1354
			'h1'        => 'h1',
1355
			'display-1' => 'display-1',
1356
			'display-2' => 'display-2',
1357
			'display-3' => 'display-3',
1358
			'display-4' => 'display-4',
1359
		);
1360
1361
	if ( $aui_bs5 ) {
1362
		$options['display-5'] = 'display-5';
1363
		$options['display-6'] = 'display-6';
1364
	}
1365
1366
	if ( $has_custom ) {
1367
		$options['custom'] = __( 'Custom size', 'ayecode-connect' );
1368
	}
1369
1370
	$defaults = array(
1371
		'type'     => 'select',
1372
		'title'    => __( 'Font size', 'ayecode-connect' ),
1373
		'options'  => $options,
1374
		'default'  => '',
1375
		'desc_tip' => true,
1376
		'group'    => __( 'Typography', 'ayecode-connect' ),
1377
	);
1378
1379
	$input = wp_parse_args( $overwrite, $defaults );
1380
1381
	return $input;
1382
}
1383
1384
/**
1385
 * A helper function for custom font size.
1386
 *
1387
 * @param string $type
1388
 * @param array $overwrite
1389
 *
1390
 * @return array
1391
 */
1392
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

1392
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...
1393
1394
	$defaults = array(
1395
		'type'              => 'number',
1396
		'title'             => __( 'Font size (rem)', 'ayecode-connect' ),
1397
		'default'           => '',
1398
		'placeholder'       => '1.25',
1399
		'custom_attributes' => array(
1400
			'step' => '0.1',
1401
			'min'  => '0',
1402
			'max'  => '100',
1403
		),
1404
		'desc_tip'          => true,
1405
		'group'             => __( 'Typography', 'ayecode-connect' ),
1406
	);
1407
1408
	if ( $parent_type ) {
1409
		$defaults['element_require'] = '[%' . $parent_type . '%]=="custom"';
1410
	}
1411
1412
	$input = wp_parse_args( $overwrite, $defaults );
1413
1414
	return $input;
1415
}
1416
1417
/**
1418
 * A helper function for custom font size.
1419
 *
1420
 * @param string $type
1421
 * @param array $overwrite
1422
 *
1423
 * @return array
1424
 */
1425
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

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

1478
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...
1479
1480
	$options = array(
1481
		''                                => __( 'Inherit', 'ayecode-connect' ),
1482
		'font-weight-bold'                => 'bold',
1483
		'font-weight-bolder'              => 'bolder',
1484
		'font-weight-normal'              => 'normal',
1485
		'font-weight-light'               => 'light',
1486
		'font-weight-lighter'             => 'lighter',
1487
		'font-italic'                     => 'italic',
1488
		'font-weight-bold font-italic'    => 'bold italic',
1489
		'font-weight-bolder font-italic'  => 'bolder italic',
1490
		'font-weight-normal font-italic'  => 'normal italic',
1491
		'font-weight-light font-italic'   => 'light italic',
1492
		'font-weight-lighter font-italic' => 'lighter italic',
1493
	);
1494
1495
	$defaults = array(
1496
		'type'     => 'select',
1497
		'title'    => __( 'Appearance', 'ayecode-connect' ),
1498
		'options'  => $options,
1499
		'default'  => '',
1500
		'desc_tip' => true,
1501
		'group'    => __( 'Typography', 'ayecode-connect' ),
1502
	);
1503
1504
	$input = wp_parse_args( $overwrite, $defaults );
1505
1506
	return $input;
1507
}
1508
1509
/**
1510
 * A helper function for font case class.
1511
 *
1512
 * @param $type
1513
 * @param $overwrite
1514
 *
1515
 * @return array
1516
 */
1517
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

1517
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...
1518
1519
	$options = array(
1520
		''                => __( 'Default', 'ayecode-connect' ),
1521
		'text-lowercase'  => __( 'lowercase', 'ayecode-connect' ),
1522
		'text-uppercase'  => __( 'UPPERCASE', 'ayecode-connect' ),
1523
		'text-capitalize' => __( 'Capitalize', 'ayecode-connect' ),
1524
	);
1525
1526
	$defaults = array(
1527
		'type'     => 'select',
1528
		'title'    => __( 'Letter case', 'ayecode-connect' ),
1529
		'options'  => $options,
1530
		'default'  => '',
1531
		'desc_tip' => true,
1532
		'group'    => __( 'Typography', 'ayecode-connect' ),
1533
	);
1534
1535
	$input = wp_parse_args( $overwrite, $defaults );
1536
1537
	return $input;
1538
}
1539
1540
/**
1541
 * @param string $type
1542
 * @param array $overwrite
1543
 *
1544
 * @return array
1545
 * @todo remove this as now included above.
1546
 * A helper function for font size
1547
 *
1548
 */
1549
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

1549
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...
1550
1551
	$options = array(
1552
		''            => __( 'No', 'ayecode-connect' ),
1553
		'font-italic' => __( 'Yes', 'ayecode-connect' ),
1554
	);
1555
1556
	$defaults = array(
1557
		'type'     => 'select',
1558
		'title'    => __( 'Font italic', 'ayecode-connect' ),
1559
		'options'  => $options,
1560
		'default'  => '',
1561
		'desc_tip' => true,
1562
		'group'    => __( 'Typography', 'ayecode-connect' ),
1563
	);
1564
1565
	$input = wp_parse_args( $overwrite, $defaults );
1566
1567
	return $input;
1568
}
1569
1570
/**
1571
 * A helper function for the anchor input.
1572
 *
1573
 * @param $type
1574
 * @param $overwrite
1575
 *
1576
 * @return array
1577
 */
1578
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

1578
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...
1579
1580
	$defaults = array(
1581
		'type'     => 'text',
1582
		'title'    => __( 'HTML anchor', 'ayecode-connect' ),
1583
		'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' ),
1584
		'default'  => '',
1585
		'desc_tip' => true,
1586
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1587
	);
1588
1589
	$input = wp_parse_args( $overwrite, $defaults );
1590
1591
	return $input;
1592
}
1593
1594
/**
1595
 * A helper function for the class input.
1596
 *
1597
 * @param $type
1598
 * @param $overwrite
1599
 *
1600
 * @return array
1601
 */
1602
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

1602
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...
1603
1604
	$defaults = array(
1605
		'type'     => 'text',
1606
		'title'    => __( 'Additional CSS class(es)', 'ayecode-connect' ),
1607
		'desc'     => __( 'Separate multiple classes with spaces.', 'ayecode-connect' ),
1608
		'default'  => '',
1609
		'desc_tip' => true,
1610
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1611
	);
1612
1613
	$input = wp_parse_args( $overwrite, $defaults );
1614
1615
	return $input;
1616
}
1617
1618
/**
1619
 * A helper function for the class input.
1620
 *
1621
 * @param $type
1622
 * @param $overwrite
1623
 *
1624
 * @return array
1625
 */
1626
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

1626
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...
1627
1628
	$defaults = array(
1629
		'type'     => 'text',
1630
		'title'    => __( 'Block Name', 'ayecode-connect' ),
1631
		'desc'     => __( 'Set a custom name for this block', 'ayecode-connect' ),
1632
		'default'  => '',
1633
		'desc_tip' => true,
1634
		'group'    => __( 'Advanced', 'ayecode-connect' ),
1635
	);
1636
1637
	$input = wp_parse_args( $overwrite, $defaults );
1638
1639
	return $input;
1640
}
1641
1642
/**
1643
 * A helper function for font size inputs.
1644
 *
1645
 * @param string $type
1646
 * @param array $overwrite
1647
 *
1648
 * @return array
1649
 */
1650
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

1650
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...
1651
1652
	$options = array(
1653
		''                 => __( 'none', 'ayecode-connect' ),
1654
		'hover-zoom'       => __( 'Zoom', 'ayecode-connect' ),
1655
		'hover-shadow'     => __( 'Shadow', 'ayecode-connect' ),
1656
		'hover-move-up'    => __( 'Move up', 'ayecode-connect' ),
1657
		'hover-move-down'  => __( 'Move down', 'ayecode-connect' ),
1658
		'hover-move-left'  => __( 'Move left', 'ayecode-connect' ),
1659
		'hover-move-right' => __( 'Move right', 'ayecode-connect' ),
1660
	);
1661
1662
	$defaults = array(
1663
		'type'     => 'select',
1664
		'multiple' => true,
1665
		'title'    => __( 'Hover Animations', 'ayecode-connect' ),
1666
		'options'  => $options,
1667
		'default'  => '',
1668
		'desc_tip' => true,
1669
		'group'    => __( 'Hover Animations', 'ayecode-connect' ),
1670
	);
1671
1672
	$input = wp_parse_args( $overwrite, $defaults );
1673
1674
	return $input;
1675
}
1676
1677
1678
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

1678
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...
1679
	$device_size = '';
1680
	if ( ! empty( $overwrite['device_type'] ) ) {
1681
		if ( $overwrite['device_type'] == 'Tablet' ) {
1682
			$device_size = '-md';
1683
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1684
			$device_size = '-lg';
1685
		}
1686
	}
1687
	$options = array(
1688
		''                                         => __( 'Default', 'ayecode-connect' ),
1689
		'align-items' . $device_size . '-start'    => 'align-items-start',
1690
		'align-items' . $device_size . '-end'      => 'align-items-end',
1691
		'align-items' . $device_size . '-center'   => 'align-items-center',
1692
		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1693
		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1694
	);
1695
1696
	$defaults = array(
1697
		'type'            => 'select',
1698
		'title'           => __( 'Vertical Align Items', 'ayecode-connect' ),
1699
		'options'         => $options,
1700
		'default'         => '',
1701
		'desc_tip'        => true,
1702
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1703
		'element_require' => ' ( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1704
1705
	);
1706
1707
	$input = wp_parse_args( $overwrite, $defaults );
1708
1709
	return $input;
1710
}
1711
1712
function sd_get_flex_align_items_input_group( $type = 'flex_align_items', $overwrite = array() ) {
1713
	$inputs = array();
1714
	$sizes  = array(
1715
		''    => 'Mobile',
1716
		'_md' => 'Tablet',
1717
		'_lg' => 'Desktop',
1718
	);
1719
1720
	if ( $overwrite !== false ) {
1721
1722
		foreach ( $sizes as $ds => $dt ) {
1723
			$overwrite['device_type'] = $dt;
1724
			$inputs[ $type . $ds ]    = sd_get_flex_align_items_input( $type, $overwrite );
1725
		}
1726
	}
1727
1728
	return $inputs;
1729
}
1730
1731
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

1731
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...
1732
	$device_size = '';
1733
	if ( ! empty( $overwrite['device_type'] ) ) {
1734
		if ( $overwrite['device_type'] == 'Tablet' ) {
1735
			$device_size = '-md';
1736
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1737
			$device_size = '-lg';
1738
		}
1739
	}
1740
	$options = array(
1741
		''                                            => __( 'Default', 'ayecode-connect' ),
1742
		'justify-content' . $device_size . '-start'   => 'justify-content-start',
1743
		'justify-content' . $device_size . '-end'     => 'justify-content-end',
1744
		'justify-content' . $device_size . '-center'  => 'justify-content-center',
1745
		'justify-content' . $device_size . '-between' => 'justify-content-between',
1746
		'justify-content' . $device_size . '-stretch' => 'justify-content-around',
1747
	);
1748
1749
	$defaults = array(
1750
		'type'            => 'select',
1751
		'title'           => __( 'Justify content', 'ayecode-connect' ),
1752
		'options'         => $options,
1753
		'default'         => '',
1754
		'desc_tip'        => true,
1755
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1756
		'element_require' => '( ( [%container%]=="row" ) || ( [%display%]=="d-flex" || [%display_md%]=="d-md-flex" || [%display_lg%]=="d-lg-flex" ) ) ',
1757
1758
	);
1759
1760
	$input = wp_parse_args( $overwrite, $defaults );
1761
1762
	return $input;
1763
}
1764
1765
function sd_get_flex_justify_content_input_group( $type = 'flex_justify_content', $overwrite = array() ) {
1766
	$inputs = array();
1767
	$sizes  = array(
1768
		''    => 'Mobile',
1769
		'_md' => 'Tablet',
1770
		'_lg' => 'Desktop',
1771
	);
1772
1773
	if ( $overwrite !== false ) {
1774
1775
		foreach ( $sizes as $ds => $dt ) {
1776
			$overwrite['device_type'] = $dt;
1777
			$inputs[ $type . $ds ]    = sd_get_flex_justify_content_input( $type, $overwrite );
1778
		}
1779
	}
1780
1781
	return $inputs;
1782
}
1783
1784
1785
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

1785
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...
1786
	$device_size = '';
1787
	if ( ! empty( $overwrite['device_type'] ) ) {
1788
		if ( $overwrite['device_type'] == 'Tablet' ) {
1789
			$device_size = '-md';
1790
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1791
			$device_size = '-lg';
1792
		}
1793
	}
1794
	$options = array(
1795
		''                                         => __( 'Default', 'ayecode-connect' ),
1796
		'align-items' . $device_size . '-start'    => 'align-items-start',
1797
		'align-items' . $device_size . '-end'      => 'align-items-end',
1798
		'align-items' . $device_size . '-center'   => 'align-items-center',
1799
		'align-items' . $device_size . '-baseline' => 'align-items-baseline',
1800
		'align-items' . $device_size . '-stretch'  => 'align-items-stretch',
1801
	);
1802
1803
	$defaults = array(
1804
		'type'            => 'select',
1805
		'title'           => __( 'Align Self', 'ayecode-connect' ),
1806
		'options'         => $options,
1807
		'default'         => '',
1808
		'desc_tip'        => true,
1809
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1810
		'element_require' => ' [%container%]=="col" ',
1811
1812
	);
1813
1814
	$input = wp_parse_args( $overwrite, $defaults );
1815
1816
	return $input;
1817
}
1818
1819
function sd_get_flex_align_self_input_group( $type = 'flex_align_self', $overwrite = array() ) {
1820
	$inputs = array();
1821
	$sizes  = array(
1822
		''    => 'Mobile',
1823
		'_md' => 'Tablet',
1824
		'_lg' => 'Desktop',
1825
	);
1826
1827
	if ( $overwrite !== false ) {
1828
1829
		foreach ( $sizes as $ds => $dt ) {
1830
			$overwrite['device_type'] = $dt;
1831
			$inputs[ $type . $ds ]    = sd_get_flex_align_self_input( $type, $overwrite );
1832
		}
1833
	}
1834
1835
	return $inputs;
1836
}
1837
1838
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

1838
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...
1839
	$device_size = '';
1840
	if ( ! empty( $overwrite['device_type'] ) ) {
1841
		if ( $overwrite['device_type'] == 'Tablet' ) {
1842
			$device_size = '-md';
1843
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1844
			$device_size = '-lg';
1845
		}
1846
	}
1847
	$options = array(
1848
		'' => __( 'Default', 'ayecode-connect' ),
1849
	);
1850
1851
	$i = 0;
1852
	while ( $i <= 5 ) {
1853
		$options[ 'order' . $device_size . '-' . $i ] = $i;
1854
		$i++;
1855
	}
1856
1857
	$defaults = array(
1858
		'type'            => 'select',
1859
		'title'           => __( 'Flex Order', 'ayecode-connect' ),
1860
		'options'         => $options,
1861
		'default'         => '',
1862
		'desc_tip'        => true,
1863
		'group'           => __( 'Wrapper Styles', 'ayecode-connect' ),
1864
		'element_require' => ' [%container%]=="col" ',
1865
1866
	);
1867
1868
	$input = wp_parse_args( $overwrite, $defaults );
1869
1870
	return $input;
1871
}
1872
1873
function sd_get_flex_order_input_group( $type = 'flex_order', $overwrite = array() ) {
1874
	$inputs = array();
1875
	$sizes  = array(
1876
		''    => 'Mobile',
1877
		'_md' => 'Tablet',
1878
		'_lg' => 'Desktop',
1879
	);
1880
1881
	if ( $overwrite !== false ) {
1882
1883
		foreach ( $sizes as $ds => $dt ) {
1884
			$overwrite['device_type'] = $dt;
1885
			$inputs[ $type . $ds ]    = sd_get_flex_order_input( $type, $overwrite );
1886
		}
1887
	}
1888
1889
	return $inputs;
1890
}
1891
1892
function sd_get_flex_wrap_group( $type = 'flex_wrap', $overwrite = array() ) {
1893
	$inputs = array();
1894
	$sizes  = array(
1895
		''    => 'Mobile',
1896
		'_md' => 'Tablet',
1897
		'_lg' => 'Desktop',
1898
	);
1899
1900
	if ( $overwrite !== false ) {
1901
1902
		foreach ( $sizes as $ds => $dt ) {
1903
			$overwrite['device_type'] = $dt;
1904
			$inputs[ $type . $ds ]    = sd_get_flex_wrap_input( $type, $overwrite );
1905
		}
1906
	}
1907
1908
	return $inputs;
1909
}
1910
1911
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

1911
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...
1912
	$device_size = '';
1913
	if ( ! empty( $overwrite['device_type'] ) ) {
1914
		if ( $overwrite['device_type'] == 'Tablet' ) {
1915
			$device_size = '-md';
1916
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1917
			$device_size = '-lg';
1918
		}
1919
	}
1920
	$options = array(
1921
		''                                      => __( 'Default', 'ayecode-connect' ),
1922
		'flex' . $device_size . '-nowrap'       => 'nowrap',
1923
		'flex' . $device_size . '-wrap'         => 'wrap',
1924
		'flex' . $device_size . '-wrap-reverse' => 'wrap-reverse',
1925
	);
1926
1927
	$defaults = array(
1928
		'type'     => 'select',
1929
		'title'    => __( 'Flex wrap', 'ayecode-connect' ),
1930
		'options'  => $options,
1931
		'default'  => '',
1932
		'desc_tip' => true,
1933
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1934
	);
1935
1936
	$input = wp_parse_args( $overwrite, $defaults );
1937
1938
	return $input;
1939
}
1940
1941
function sd_get_float_group( $type = 'float', $overwrite = array() ) {
1942
	$inputs = array();
1943
	$sizes  = array(
1944
		''    => 'Mobile',
1945
		'_md' => 'Tablet',
1946
		'_lg' => 'Desktop',
1947
	);
1948
1949
	if ( $overwrite !== false ) {
1950
1951
		foreach ( $sizes as $ds => $dt ) {
1952
			$overwrite['device_type'] = $dt;
1953
			$inputs[ $type . $ds ]    = sd_get_float_input( $type, $overwrite );
1954
		}
1955
	}
1956
1957
	return $inputs;
1958
}
1959
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

1959
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...
1960
	$device_size = '';
1961
	if ( ! empty( $overwrite['device_type'] ) ) {
1962
		if ( $overwrite['device_type'] == 'Tablet' ) {
1963
			$device_size = '-md';
1964
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
1965
			$device_size = '-lg';
1966
		}
1967
	}
1968
	$options = array(
1969
		''                                      => __( 'Default', 'ayecode-connect' ),
1970
		'float' . $device_size . '-start'       => 'left',
1971
		'float' . $device_size . '-end'         => 'right',
1972
		'float' . $device_size . '-none' => 'none',
1973
	);
1974
1975
	$defaults = array(
1976
		'type'     => 'select',
1977
		'title'    => __( 'Float', 'ayecode-connect' ),
1978
		'options'  => $options,
1979
		'default'  => '',
1980
		'desc_tip' => true,
1981
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
1982
	);
1983
1984
	$input = wp_parse_args( $overwrite, $defaults );
1985
1986
	return $input;
1987
}
1988
1989
/**
1990
 * @param $type
1991
 * @param $overwrite
1992
 *
1993
 * @return array
1994
 */
1995
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

1995
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...
1996
1997
	$options = array(
1998
		''          => __( 'Default', 'ayecode-connect' ),
1999
		'zindex-0'  => '0',
2000
		'zindex-1'  => '1',
2001
		'zindex-5'  => '5',
2002
		'zindex-10' => '10',
2003
	);
2004
2005
	$defaults = array(
2006
		'type'     => 'select',
2007
		'title'    => __( 'Z-index', 'ayecode-connect' ),
2008
		'options'  => $options,
2009
		'default'  => '',
2010
		'desc_tip' => true,
2011
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2012
	);
2013
2014
	$input = wp_parse_args( $overwrite, $defaults );
2015
2016
	return $input;
2017
}
2018
2019
/**
2020
 * @param $type
2021
 * @param $overwrite
2022
 *
2023
 * @return array
2024
 */
2025
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

2025
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...
2026
2027
	$options = array(
2028
		''                 => __( 'Default', 'ayecode-connect' ),
2029
		'overflow-auto'    => __( 'Auto', 'ayecode-connect' ),
2030
		'overflow-hidden'  => __( 'Hidden', 'ayecode-connect' ),
2031
		'overflow-visible' => __( 'Visible', 'ayecode-connect' ),
2032
		'overflow-scroll'  => __( 'Scroll', 'ayecode-connect' ),
2033
	);
2034
2035
	$defaults = array(
2036
		'type'     => 'select',
2037
		'title'    => __( 'Overflow', 'ayecode-connect' ),
2038
		'options'  => $options,
2039
		'default'  => '',
2040
		'desc_tip' => true,
2041
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2042
	);
2043
2044
	$input = wp_parse_args( $overwrite, $defaults );
2045
2046
	return $input;
2047
}
2048
2049
/**
2050
 * @param $type
2051
 * @param $overwrite
2052
 *
2053
 * @return array
2054
 */
2055
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

2055
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...
2056
2057
	$defaults = array(
2058
		'type'        => 'text',
2059
		'title'       => __( 'Max height', 'ayecode-connect' ),
2060
		'value'       => '',
2061
		'default'     => '',
2062
		'placeholder' => '',
2063
		'desc_tip'    => true,
2064
		'group'       => __( 'Wrapper Styles', 'ayecode-connect' ),
2065
	);
2066
2067
	$input = wp_parse_args( $overwrite, $defaults );
2068
2069
	return $input;
2070
}
2071
2072
/**
2073
 * @param $type
2074
 * @param $overwrite
2075
 *
2076
 * @return array
2077
 */
2078
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

2078
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...
2079
2080
	$options = array(
2081
		''               => __( 'Default', 'ayecode-connect' ),
2082
		'scrollbars-ios' => __( 'IOS Style', 'ayecode-connect' ),
2083
	);
2084
2085
	$defaults = array(
2086
		'type'     => 'select',
2087
		'title'    => __( 'Scrollbars', 'ayecode-connect' ),
2088
		'options'  => $options,
2089
		'default'  => '',
2090
		'desc_tip' => true,
2091
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2092
	);
2093
2094
	$input = wp_parse_args( $overwrite, $defaults );
2095
2096
	return $input;
2097
}
2098
2099
/**
2100
 * @param $type
2101
 * @param $overwrite
2102
 *
2103
 * @return array
2104
 */
2105
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

2105
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...
2106
2107
	$defaults = array(
2108
		'type'     => 'checkbox',
2109
		'title'    => __( 'Open in new window', 'ayecode-connect' ),
2110
		'default'  => '',
2111
		'desc_tip' => true,
2112
		'group'    => __( 'Link', 'ayecode-connect' ),
2113
	);
2114
2115
	$input = wp_parse_args( $overwrite, $defaults );
2116
2117
	return $input;
2118
}
2119
2120
/**
2121
 * @param $type
2122
 * @param $overwrite
2123
 *
2124
 * @return array
2125
 */
2126
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

2126
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...
2127
2128
	$defaults = array(
2129
		'type'     => 'checkbox',
2130
		'title'    => __( 'Add nofollow', 'ayecode-connect' ),
2131
		'default'  => '',
2132
		'desc_tip' => true,
2133
		'group'    => __( 'Link', 'ayecode-connect' ),
2134
	);
2135
2136
	$input = wp_parse_args( $overwrite, $defaults );
2137
2138
	return $input;
2139
}
2140
2141
/**
2142
 * A helper function for width inputs.
2143
 *
2144
 * @param string $type
2145
 * @param array $overwrite
2146
 *
2147
 * @return array
2148
 */
2149
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

2149
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...
2150
2151
	$device_size = '';
2152
	if ( ! empty( $overwrite['device_type'] ) ) {
2153
		if ( $overwrite['device_type'] == 'Tablet' ) {
2154
			$device_size = '-md';
2155
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2156
			$device_size = '-lg';
2157
		}
2158
	}
2159
	$options = array(
2160
		'' => __('Default', 'ayecode-connect'),
2161
		'w' . $device_size . '-25' => '25%',
2162
		'w' . $device_size . '-50' => '50%',
2163
		'w' . $device_size . '-75' => '75%',
2164
		'w' . $device_size . '-100' => '100%',
2165
		'w' . $device_size . '-auto' => 'auto',
2166
	);
2167
2168
	$defaults = array(
2169
		'type'     => 'select',
2170
		'title'    => __( 'Width', 'ayecode-connect' ),
2171
		'options'  => $options,
2172
		'default'  => '',
2173
		'desc_tip' => true,
2174
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2175
	);
2176
2177
	$input = wp_parse_args( $overwrite, $defaults );
2178
2179
	return $input;
2180
}
2181
2182
/**
2183
 * A helper function for height inputs.
2184
 *
2185
 * @param string $type
2186
 * @param array $overwrite
2187
 *
2188
 * @return array
2189
 */
2190
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

2190
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...
2191
2192
	$device_size = '';
2193
	if ( ! empty( $overwrite['device_type'] ) ) {
2194
		if ( $overwrite['device_type'] == 'Tablet' ) {
2195
			$device_size = '-md';
2196
		} elseif ( $overwrite['device_type'] == 'Desktop' ) {
2197
			$device_size = '-lg';
2198
		}
2199
	}
2200
	$options = array(
2201
		'' => __('Default', 'ayecode-connect'),
2202
		'h' . $device_size . '-25' => '25%',
2203
		'h' . $device_size . '-50' => '50%',
2204
		'h' . $device_size . '-75' => '75%',
2205
		'h' . $device_size . '-100' => '100%',
2206
		'h' . $device_size . '-auto' => 'auto',
2207
	);
2208
2209
	$defaults = array(
2210
		'type'     => 'select',
2211
		'title'    => __( 'Height', 'ayecode-connect' ),
2212
		'options'  => $options,
2213
		'default'  => '',
2214
		'desc_tip' => true,
2215
		'group'    => __( 'Wrapper Styles', 'ayecode-connect' ),
2216
	);
2217
2218
	$input = wp_parse_args( $overwrite, $defaults );
2219
2220
	return $input;
2221
}
2222
2223
/**
2224
 * @param $type
2225
 * @param $overwrite
2226
 *
2227
 * @return array
2228
 */
2229
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

2229
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...
2230
2231
	$defaults = array(
2232
		'type'        => 'text',
2233
		'title'       => __( 'Custom Attributes', 'ayecode-connect' ),
2234
		'value'       => '',
2235
		'default'     => '',
2236
		'placeholder' => 'key|value,key2|value2',
2237
		'desc_tip'    => true,
2238
		'group'       => __( 'Link', 'ayecode-connect' ),
2239
	);
2240
2241
	$input = wp_parse_args( $overwrite, $defaults );
2242
2243
	return $input;
2244
}
2245
2246
/**
2247
 * @param $args
2248
 *
2249
 * @return string
2250
 */
2251
function sd_build_attributes_string_escaped( $args ) {
2252
	global $aui_bs5;
2253
2254
	$attributes = array();
2255
	$string_escaped = '';
2256
2257
	if ( ! empty( $args['custom'] ) ) {
2258
		$attributes = sd_parse_custom_attributes($args['custom']);
2259
	}
2260
2261
	// new window
2262
	if ( ! empty( $args['new_window'] ) ) {
2263
		$attributes['target'] = '_blank';
2264
	}
2265
2266
	// nofollow
2267
	if ( ! empty( $args['nofollow'] ) ) {
2268
		$attributes['rel'] = isset($attributes['rel']) ? $attributes['rel'] . ' nofollow' : 'nofollow';
2269
	}
2270
2271
	if(!empty($attributes )){
2272
		foreach ( $attributes as $key => $val ) {
2273
			$string_escaped .= esc_attr($key) . '="' . esc_attr($val) . '" ';
2274
		}
2275
	}
2276
2277
	return $string_escaped;
2278
}
2279
2280
/**
2281
 * @info borrowed from elementor
2282
 *
2283
 * @param $attributes_string
2284
 * @param $delimiter
2285
 *
2286
 * @return array
2287
 */
2288
function sd_parse_custom_attributes( $attributes_string, $delimiter = ',' ) {
2289
	$attributes = explode( $delimiter, $attributes_string );
2290
	$result = [];
2291
2292
	foreach ( $attributes as $attribute ) {
2293
		$attr_key_value = explode( '|', $attribute );
2294
2295
		$attr_key = mb_strtolower( $attr_key_value[0] );
2296
2297
		// Remove any not allowed characters.
2298
		preg_match( '/[-_a-z0-9]+/', $attr_key, $attr_key_matches );
2299
2300
		if ( empty( $attr_key_matches[0] ) ) {
2301
			continue;
2302
		}
2303
2304
		$attr_key = $attr_key_matches[0];
2305
2306
		// Avoid Javascript events and unescaped href.
2307
		if ( 'href' === $attr_key || 'on' === substr( $attr_key, 0, 2 ) ) {
2308
			continue;
2309
		}
2310
2311
		if ( isset( $attr_key_value[1] ) ) {
2312
			$attr_value = trim( $attr_key_value[1] );
2313
		} else {
2314
			$attr_value = '';
2315
		}
2316
2317
		$result[ $attr_key ] = $attr_value;
2318
	}
2319
2320
	return $result;
2321
}
2322
2323
/**
2324
 * Build AUI classes from settings.
2325
 *
2326
 * @param $args
2327
 *
2328
 * @return string
2329
 * @todo find best way to use px- py- or general p-
2330
 */
2331
function sd_build_aui_class( $args ) {
2332
	global $aui_bs5;
2333
2334
	$classes = array();
2335
2336
	if ( $aui_bs5 ) {
2337
		$p_ml = 'ms-';
2338
		$p_mr = 'me-';
2339
2340
		$p_pl = 'ps-';
2341
		$p_pr = 'pe-';
2342
	} else {
2343
		$p_ml = 'ml-';
2344
		$p_mr = 'mr-';
2345
2346
		$p_pl = 'pl-';
2347
		$p_pr = 'pr-';
2348
	}
2349
2350
	// margins.
2351
	if ( isset( $args['mt'] ) && $args['mt'] !== '' ) {
2352
		$classes[] = 'mt-' . sanitize_html_class( $args['mt'] );
2353
		$mt        = $args['mt'];
2354
	} else {
2355
		$mt = null;
2356
	}
2357
	if ( isset( $args['mr'] ) && $args['mr'] !== '' ) {
2358
		$classes[] = $p_mr . sanitize_html_class( $args['mr'] );
2359
		$mr        = $args['mr'];
2360
	} else {
2361
		$mr = null;
2362
	}
2363
	if ( isset( $args['mb'] ) && $args['mb'] !== '' ) {
2364
		$classes[] = 'mb-' . sanitize_html_class( $args['mb'] );
2365
		$mb        = $args['mb'];
2366
	} else {
2367
		$mb = null;
2368
	}
2369
	if ( isset( $args['ml'] ) && $args['ml'] !== '' ) {
2370
		$classes[] = $p_ml . sanitize_html_class( $args['ml'] );
2371
		$ml        = $args['ml'];
2372
	} else {
2373
		$ml = null;
2374
	}
2375
2376
	// margins tablet.
2377
	if ( isset( $args['mt_md'] ) && $args['mt_md'] !== '' ) {
2378
		$classes[] = 'mt-md-' . sanitize_html_class( $args['mt_md'] );
2379
		$mt_md     = $args['mt_md'];
2380
	} else {
2381
		$mt_md = null;
2382
	}
2383
	if ( isset( $args['mr_md'] ) && $args['mr_md'] !== '' ) {
2384
		$classes[] = $p_mr . 'md-' . sanitize_html_class( $args['mr_md'] );
2385
		$mt_md     = $args['mr_md'];
2386
	} else {
2387
		$mr_md = null;
2388
	}
2389
	if ( isset( $args['mb_md'] ) && $args['mb_md'] !== '' ) {
2390
		$classes[] = 'mb-md-' . sanitize_html_class( $args['mb_md'] );
2391
		$mt_md     = $args['mb_md'];
2392
	} else {
2393
		$mb_md = null;
2394
	}
2395
	if ( isset( $args['ml_md'] ) && $args['ml_md'] !== '' ) {
2396
		$classes[] = $p_ml . 'md-' . sanitize_html_class( $args['ml_md'] );
2397
		$mt_md     = $args['ml_md'];
2398
	} else {
2399
		$ml_md = null;
2400
	}
2401
2402
	// margins desktop.
2403
	if ( isset( $args['mt_lg'] ) && $args['mt_lg'] !== '' ) {
2404
		if ( $mt == null && $mt_md == null ) {
2405
			$classes[] = 'mt-' . sanitize_html_class( $args['mt_lg'] );
2406
		} else {
2407
			$classes[] = 'mt-lg-' . sanitize_html_class( $args['mt_lg'] );
2408
		}
2409
	}
2410
	if ( isset( $args['mr_lg'] ) && $args['mr_lg'] !== '' ) {
2411
		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...
2412
			$classes[] = $p_mr . sanitize_html_class( $args['mr_lg'] );
2413
		} else {
2414
			$classes[] = $p_mr . 'lg-' . sanitize_html_class( $args['mr_lg'] );
2415
		}
2416
	}
2417
	if ( isset( $args['mb_lg'] ) && $args['mb_lg'] !== '' ) {
2418
		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...
2419
			$classes[] = 'mb-' . sanitize_html_class( $args['mb_lg'] );
2420
		} else {
2421
			$classes[] = 'mb-lg-' . sanitize_html_class( $args['mb_lg'] );
2422
		}
2423
	}
2424
	if ( isset( $args['ml_lg'] ) && $args['ml_lg'] !== '' ) {
2425
		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...
2426
			$classes[] = $p_ml . sanitize_html_class( $args['ml_lg'] );
2427
		} else {
2428
			$classes[] = $p_ml . 'lg-' . sanitize_html_class( $args['ml_lg'] );
2429
		}
2430
	}
2431
2432
	// padding.
2433
	if ( isset( $args['pt'] ) && $args['pt'] !== '' ) {
2434
		$classes[] = 'pt-' . sanitize_html_class( $args['pt'] );
2435
		$pt        = $args['pt'];
2436
	} else {
2437
		$pt = null;
2438
	}
2439
	if ( isset( $args['pr'] ) && $args['pr'] !== '' ) {
2440
		$classes[] = $p_pr . sanitize_html_class( $args['pr'] );
2441
		$pr        = $args['pr'];
2442
	} else {
2443
		$pr = null;
2444
	}
2445
	if ( isset( $args['pb'] ) && $args['pb'] !== '' ) {
2446
		$classes[] = 'pb-' . sanitize_html_class( $args['pb'] );
2447
		$pb        = $args['pb'];
2448
	} else {
2449
		$pb = null;
2450
	}
2451
	if ( isset( $args['pl'] ) && $args['pl'] !== '' ) {
2452
		$classes[] = $p_pl . sanitize_html_class( $args['pl'] );
2453
		$pl        = $args['pl'];
2454
	} else {
2455
		$pl = null;
2456
	}
2457
2458
	// padding tablet.
2459
	if ( isset( $args['pt_md'] ) && $args['pt_md'] !== '' ) {
2460
		$classes[] = 'pt-md-' . sanitize_html_class( $args['pt_md'] );
2461
		$pt_md     = $args['pt_md'];
2462
	} else {
2463
		$pt_md = null;
2464
	}
2465
	if ( isset( $args['pr_md'] ) && $args['pr_md'] !== '' ) {
2466
		$classes[] = $p_pr . 'md-' . sanitize_html_class( $args['pr_md'] );
2467
		$pr_md     = $args['pr_md'];
2468
	} else {
2469
		$pr_md = null;
2470
	}
2471
	if ( isset( $args['pb_md'] ) && $args['pb_md'] !== '' ) {
2472
		$classes[] = 'pb-md-' . sanitize_html_class( $args['pb_md'] );
2473
		$pb_md     = $args['pb_md'];
2474
	} else {
2475
		$pb_md = null;
2476
	}
2477
	if ( isset( $args['pl_md'] ) && $args['pl_md'] !== '' ) {
2478
		$classes[] = $p_pl . 'md-' . sanitize_html_class( $args['pl_md'] );
2479
		$pl_md     = $args['pl_md'];
2480
	} else {
2481
		$pl_md = null;
2482
	}
2483
2484
	// padding desktop.
2485
	if ( isset( $args['pt_lg'] ) && $args['pt_lg'] !== '' ) {
2486
		if ( $pt == null && $pt_md == null ) {
2487
			$classes[] = 'pt-' . sanitize_html_class( $args['pt_lg'] );
2488
		} else {
2489
			$classes[] = 'pt-lg-' . sanitize_html_class( $args['pt_lg'] );
2490
		}
2491
	}
2492
	if ( isset( $args['pr_lg'] ) && $args['pr_lg'] !== '' ) {
2493
		if ( $pr == null && $pr_md == null ) {
2494
			$classes[] = $p_pr . sanitize_html_class( $args['pr_lg'] );
2495
		} else {
2496
			$classes[] = $p_pr . 'lg-' . sanitize_html_class( $args['pr_lg'] );
2497
		}
2498
	}
2499
	if ( isset( $args['pb_lg'] ) && $args['pb_lg'] !== '' ) {
2500
		if ( $pb == null && $pb_md == null ) {
2501
			$classes[] = 'pb-' . sanitize_html_class( $args['pb_lg'] );
2502
		} else {
2503
			$classes[] = 'pb-lg-' . sanitize_html_class( $args['pb_lg'] );
2504
		}
2505
	}
2506
	if ( isset( $args['pl_lg'] ) && $args['pl_lg'] !== '' ) {
2507
		if ( $pl == null && $pl_md == null ) {
2508
			$classes[] = $p_pl . sanitize_html_class( $args['pl_lg'] );
2509
		} else {
2510
			$classes[] = $p_pl . 'lg-' . sanitize_html_class( $args['pl_lg'] );
2511
		}
2512
	}
2513
2514
	// row cols, mobile, tablet, desktop
2515
	if ( ! empty( $args['row_cols'] ) && $args['row_cols'] !== '' ) {
2516
		$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols'] );
2517
		$row_cols  = $args['row_cols'];
2518
	} else {
2519
		$row_cols = null;
2520
	}
2521
	if ( ! empty( $args['row_cols_md'] ) && $args['row_cols_md'] !== '' ) {
2522
		$classes[]   = sanitize_html_class( 'row-cols-md-' . $args['row_cols_md'] );
2523
		$row_cols_md = $args['row_cols_md'];
2524
	} else {
2525
		$row_cols_md = null;
2526
	}
2527
	if ( ! empty( $args['row_cols_lg'] ) && $args['row_cols_lg'] !== '' ) {
2528
		if ( $row_cols == null && $row_cols_md == null ) {
2529
			$classes[] = sanitize_html_class( 'row-cols-' . $args['row_cols_lg'] );
2530
		} else {
2531
			$classes[] = sanitize_html_class( 'row-cols-lg-' . $args['row_cols_lg'] );
2532
		}
2533
	}
2534
2535
	// columns , mobile, tablet, desktop
2536
	if ( ! empty( $args['col'] ) && $args['col'] !== '' ) {
2537
		$classes[] = sanitize_html_class( 'col-' . $args['col'] );
2538
		$col       = $args['col'];
2539
	} else {
2540
		$col = null;
2541
	}
2542
	if ( ! empty( $args['col_md'] ) && $args['col_md'] !== '' ) {
2543
		$classes[] = sanitize_html_class( 'col-md-' . $args['col_md'] );
2544
		$col_md    = $args['col_md'];
2545
	} else {
2546
		$col_md = null;
2547
	}
2548
	if ( ! empty( $args['col_lg'] ) && $args['col_lg'] !== '' ) {
2549
		if ( $col == null && $col_md == null ) {
2550
			$classes[] = sanitize_html_class( 'col-' . $args['col_lg'] );
2551
		} else {
2552
			$classes[] = sanitize_html_class( 'col-lg-' . $args['col_lg'] );
2553
		}
2554
	}
2555
2556
	// border
2557
	if ( isset( $args['border'] ) && ( $args['border'] == 'none' || $args['border'] === '0' || $args['border'] === 0 ) ) {
2558
		$classes[] = 'border-0';
2559
	} elseif ( ! empty( $args['border'] ) ) {
2560
		$border_class = 'border';
2561
		if ( ! empty( $args['border_type'] ) && strpos( $args['border_type'], '-0' ) === false ) {
2562
			$border_class = '';
2563
		}
2564
		$classes[] = $border_class . ' border-' . sanitize_html_class( $args['border'] );
2565
	}
2566
2567
	// border radius type
2568
	if ( ! empty( $args['rounded'] ) ) {
2569
		$classes[] = sanitize_html_class( $args['rounded'] );
2570
	}
2571
2572
	// border radius size BS4
2573
	if ( isset( $args['rounded_size'] ) && in_array( $args['rounded_size'], array( 'sm', 'lg' ) ) ) {
2574
		$classes[] = 'rounded-' . sanitize_html_class( $args['rounded_size'] );
2575
		// if we set a size then we need to remove "rounded" if set
2576
		if ( ( $key = array_search( 'rounded', $classes ) ) !== false ) {
2577
			unset( $classes[ $key ] );
2578
		}
2579
	} else {
2580
2581
		// border radius size , mobile, tablet, desktop
2582
		if ( isset( $args['rounded_size'] ) && $args['rounded_size'] !== '' ) {
2583
			$classes[]    = sanitize_html_class( 'rounded-' . $args['rounded_size'] );
2584
			$rounded_size = $args['rounded_size'];
2585
		} else {
2586
			$rounded_size = null;
2587
		}
2588
		if ( isset( $args['rounded_size_md'] ) && $args['rounded_size_md'] !== '' ) {
2589
			$classes[]       = sanitize_html_class( 'rounded-md-' . $args['rounded_size_md'] );
2590
			$rounded_size_md = $args['rounded_size_md'];
2591
		} else {
2592
			$rounded_size_md = null;
2593
		}
2594
		if ( isset( $args['rounded_size_lg'] ) && $args['rounded_size_lg'] !== '' ) {
2595
			if ( $rounded_size == null && $rounded_size_md == null ) {
2596
				$classes[] = sanitize_html_class( 'rounded-' . $args['rounded_size_lg'] );
2597
			} else {
2598
				$classes[] = sanitize_html_class( 'rounded-lg-' . $args['rounded_size_lg'] );
2599
			}
2600
		}
2601
	}
2602
2603
	// shadow
2604
	//if ( !empty( $args['shadow'] ) ) { $classes[] = sanitize_html_class($args['shadow']); }
2605
2606
	// background
2607
	if ( ! empty( $args['bg'] ) ) {
2608
		$classes[] = 'bg-' . sanitize_html_class( $args['bg'] );
2609
	}
2610
2611
	// background image fixed bg_image_fixed this helps fix a iOS bug
2612
	if ( ! empty( $args['bg_image_fixed'] ) ) {
2613
		$classes[] = 'bg-image-fixed';
2614
	}
2615
2616
	// text_color
2617
	if ( ! empty( $args['text_color'] ) ) {
2618
		$classes[] = 'text-' . sanitize_html_class( $args['text_color'] );
2619
	}
2620
2621
	// text_align
2622
	if ( ! empty( $args['text_justify'] ) ) {
2623
		$classes[] = 'text-justify';
2624
	} else {
2625
		if ( ! empty( $args['text_align'] ) ) {
2626
			$classes[]  = sanitize_html_class( $args['text_align'] );
2627
			$text_align = $args['text_align'];
2628
		} else {
2629
			$text_align = null;
2630
		}
2631
		if ( ! empty( $args['text_align_md'] ) && $args['text_align_md'] !== '' ) {
2632
			$classes[]     = sanitize_html_class( $args['text_align_md'] );
2633
			$text_align_md = $args['text_align_md'];
2634
		} else {
2635
			$text_align_md = null;
2636
		}
2637
		if ( ! empty( $args['text_align_lg'] ) && $args['text_align_lg'] !== '' ) {
2638
			if ( $text_align == null && $text_align_md == null ) {
2639
				$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['text_align_lg'] ) );
2640
			} else {
2641
				$classes[] = sanitize_html_class( $args['text_align_lg'] );
2642
			}
2643
		}
2644
	}
2645
2646
	// display
2647
	if ( ! empty( $args['display'] ) ) {
2648
		$classes[] = sanitize_html_class( $args['display'] );
2649
		$display   = $args['display'];
2650
	} else {
2651
		$display = null;
2652
	}
2653
	if ( ! empty( $args['display_md'] ) && $args['display_md'] !== '' ) {
2654
		$classes[]  = sanitize_html_class( $args['display_md'] );
2655
		$display_md = $args['display_md'];
2656
	} else {
2657
		$display_md = null;
2658
	}
2659
	if ( ! empty( $args['display_lg'] ) && $args['display_lg'] !== '' ) {
2660
		if ( $display == null && $display_md == null ) {
2661
			$classes[] = sanitize_html_class( str_replace( '-lg', '', $args['display_lg'] ) );
2662
		} else {
2663
			$classes[] = sanitize_html_class( $args['display_lg'] );
2664
		}
2665
	}
2666
2667
	// bgtus - background transparent until scroll
2668
	if ( ! empty( $args['bgtus'] ) ) {
2669
		$classes[] = sanitize_html_class( 'bg-transparent-until-scroll' );
2670
	}
2671
2672
	// cscos - change color scheme on scroll
2673
	if ( ! empty( $args['bgtus'] ) && ! empty( $args['cscos'] ) ) {
2674
		$classes[] = sanitize_html_class( 'color-scheme-flip-on-scroll' );
2675
	}
2676
2677
	// hover animations
2678
	if ( ! empty( $args['hover_animations'] ) ) {
2679
		$classes[] = sd_sanitize_html_classes( str_replace( ',', ' ', $args['hover_animations'] ) );
2680
	}
2681
2682
	// absolute_position
2683
	if ( ! empty( $args['absolute_position'] ) ) {
2684
		if ( 'top-left' === $args['absolute_position'] ) {
2685
			$classes[] = 'start-0 top-0';
2686
		} elseif ( 'top-center' === $args['absolute_position'] ) {
2687
			$classes[] = 'start-50 top-0 translate-middle';
2688
		} elseif ( 'top-right' === $args['absolute_position'] ) {
2689
			$classes[] = 'end-0 top-0';
2690
		} elseif ( 'center-left' === $args['absolute_position'] ) {
2691
			$classes[] = 'start-0 top-50';
2692
		} elseif ( 'center' === $args['absolute_position'] ) {
2693
			$classes[] = 'start-50 top-50 translate-middle';
2694
		} elseif ( 'center-right' === $args['absolute_position'] ) {
2695
			$classes[] = 'end-0 top-50';
2696
		} elseif ( 'bottom-left' === $args['absolute_position'] ) {
2697
			$classes[] = 'start-0 bottom-0';
2698
		} elseif ( 'bottom-center' === $args['absolute_position'] ) {
2699
			$classes[] = 'start-50 bottom-0 translate-middle';
2700
		} elseif ( 'bottom-right' === $args['absolute_position'] ) {
2701
			$classes[] = 'end-0 bottom-0';
2702
		}
2703
	}
2704
2705
	// build classes from build keys
2706
	$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...
2707
	if ( ! empty( $build_keys ) ) {
2708
		foreach ( $build_keys as $key ) {
0 ignored issues
show
Bug introduced by
The expression $build_keys of type void is not traversable.
Loading history...
2709
2710
			if ( substr( $key, -4 ) == '-MTD' ) {
2711
2712
				$k = str_replace( '-MTD', '', $key );
2713
2714
				// Mobile, Tablet, Desktop
2715
				if ( ! empty( $args[ $k ] ) && $args[ $k ] !== '' ) {
2716
					$classes[] = sanitize_html_class( $args[ $k ] );
2717
					$v         = $args[ $k ];
2718
				} else {
2719
					$v = null;
2720
				}
2721
				if ( ! empty( $args[ $k . '_md' ] ) && $args[ $k . '_md' ] !== '' ) {
2722
					$classes[] = sanitize_html_class( $args[ $k . '_md' ] );
2723
					$v_md      = $args[ $k . '_md' ];
2724
				} else {
2725
					$v_md = null;
2726
				}
2727
				if ( ! empty( $args[ $k . '_lg' ] ) && $args[ $k . '_lg' ] !== '' ) {
2728
					if ( $v == null && $v_md == null ) {
2729
						$classes[] = sanitize_html_class( str_replace( '-lg', '', $args[ $k . '_lg' ] ) );
2730
					} else {
2731
						$classes[] = sanitize_html_class( $args[ $k . '_lg' ] );
2732
					}
2733
				}
2734
			} else {
2735
				if ( $key == 'font_size' && ! empty( $args[ $key ] ) && $args[ $key ] == 'custom' ) {
2736
					continue;
2737
				}
2738
				if ( ! empty( $args[ $key ] ) ) {
2739
					$classes[] = sd_sanitize_html_classes( $args[ $key ] );
2740
				}
2741
			}
2742
		}
2743
	}
2744
2745
	if ( ! empty( $classes ) ) {
2746
		$classes = array_unique( array_filter( array_map( 'trim', $classes ) ) );
2747
	}
2748
2749
	return implode( ' ', $classes );
2750
}
2751
2752
/**
2753
 * Build Style output from arguments.
2754
 *
2755
 * @param $args
2756
 *
2757
 * @return array
2758
 */
2759
function sd_build_aui_styles( $args ) {
2760
2761
	$styles = array();
2762
2763
	// background color
2764
	if ( ! empty( $args['bg'] ) && $args['bg'] !== '' ) {
2765
		if ( $args['bg'] == 'custom-color' ) {
2766
			$styles['background-color'] = $args['bg_color'];
2767
		} elseif ( $args['bg'] == 'custom-gradient' ) {
2768
			$styles['background-image'] = $args['bg_gradient'];
2769
2770
			// use background on text.
2771
			if ( ! empty( $args['bg_on_text'] ) && $args['bg_on_text'] ) {
2772
				$styles['background-clip']         = 'text';
2773
				$styles['-webkit-background-clip'] = 'text';
2774
				$styles['text-fill-color']         = 'transparent';
2775
				$styles['-webkit-text-fill-color'] = 'transparent';
2776
			}
2777
		}
2778
	}
2779
2780
	if ( ! empty( $args['bg_image'] ) && $args['bg_image'] !== '' ) {
2781
		$hasImage = true;
2782
		if ( ! empty( $styles['background-color'] ) && $args['bg'] == 'custom-color' ) {
2783
			$styles['background-image']      = 'url(' . $args['bg_image'] . ')';
2784
			$styles['background-blend-mode'] = 'overlay';
2785
		} elseif ( ! empty( $styles['background-image'] ) && $args['bg'] == 'custom-gradient' ) {
2786
			$styles['background-image'] .= ',url(' . $args['bg_image'] . ')';
2787
		} elseif ( ! empty( $args['bg'] ) && $args['bg'] != '' && $args['bg'] != 'transparent' ) {
2788
			// do nothing as we alreay have a preset
2789
			$hasImage = false;
2790
		} else {
2791
			$styles['background-image'] = 'url(' . $args['bg_image'] . ')';
2792
		}
2793
2794
		if ( $hasImage ) {
2795
			$styles['background-size'] = 'cover';
2796
2797
			if ( ! empty( $args['bg_image_fixed'] ) && $args['bg_image_fixed'] ) {
2798
				$styles['background-attachment'] = 'fixed';
2799
			}
2800
		}
2801
2802
		if ( $hasImage && ! empty( $args['bg_image_xy'] ) && ! empty( $args['bg_image_xy']['x'] ) ) {
2803
			$styles['background-position'] = ( $args['bg_image_xy']['x'] * 100 ) . '% ' . ( $args['bg_image_xy']['y'] * 100 ) . '%';
2804
		}
2805
	}
2806
2807
	// sticky offset top
2808
	if ( ! empty( $args['sticky_offset_top'] ) && $args['sticky_offset_top'] !== '' ) {
2809
		$styles['top'] = absint( $args['sticky_offset_top'] );
2810
	}
2811
2812
	// sticky offset bottom
2813
	if ( ! empty( $args['sticky_offset_bottom'] ) && $args['sticky_offset_bottom'] !== '' ) {
2814
		$styles['bottom'] = absint( $args['sticky_offset_bottom'] );
2815
	}
2816
2817
	// font size
2818
	if ( ! empty( $args['font_size_custom'] ) && $args['font_size_custom'] !== '' ) {
2819
		$styles['font-size'] = (float) $args['font_size_custom'] . 'rem';
2820
	}
2821
2822
	// font color
2823
	if ( ! empty( $args['text_color_custom'] ) && $args['text_color_custom'] !== '' ) {
2824
		$styles['color'] = esc_attr( $args['text_color_custom'] );
2825
	}
2826
2827
	// font line height
2828
	if ( ! empty( $args['font_line_height'] ) && $args['font_line_height'] !== '' ) {
2829
		$styles['line-height'] = esc_attr( $args['font_line_height'] );
2830
	}
2831
2832
	// max height
2833
	if ( ! empty( $args['max_height'] ) && $args['max_height'] !== '' ) {
2834
		$styles['max-height'] = esc_attr( $args['max_height'] );
2835
	}
2836
2837
	$style_string = '';
2838
	if ( ! empty( $styles ) ) {
2839
		foreach ( $styles as $key => $val ) {
2840
			$style_string .= esc_attr( $key ) . ':' . esc_attr( $val ) . ';';
2841
		}
2842
	}
2843
2844
	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...
2845
2846
}
2847
2848
/**
2849
 * Build the hover styles from args.
2850
 *
2851
 * @param $args
2852
 * @param $is_preview
2853
 *
2854
 * @return string
2855
 */
2856
function sd_build_hover_styles( $args, $is_preview = false ) {
2857
	$rules = '';
2858
	// text color
2859
	if ( ! empty( $args['styleid'] ) ) {
2860
		$styleid = $is_preview ? 'html .editor-styles-wrapper .' . esc_attr( $args['styleid'] ) : 'html .' . esc_attr( $args['styleid'] );
2861
2862
		// text
2863
		if ( ! empty( $args['text_color_hover'] ) ) {
2864
			$key    = 'custom' === $args['text_color_hover'] && ! empty( $args['text_color_hover_custom'] ) ? 'text_color_hover_custom' : 'text_color_hover';
2865
			$color  = sd_get_color_from_var( $args[ $key ] );
2866
			$rules .= $styleid . ':hover {color: ' . $color . ' !important;} ';
2867
		}
2868
2869
		// bg
2870
		if ( ! empty( $args['bg_hover'] ) ) {
2871
			if ( 'custom-gradient' === $args['bg_hover'] ) {
2872
				$color  = $args['bg_hover_gradient'];
2873
				$rules .= $styleid . ':hover {background-image: ' . $color . ' !important;} ';
2874
				$rules .= $styleid . '.btn:hover {border-color: transparent !important;} ';
2875
			} else {
2876
				$key    = 'custom-color' === $args['bg_hover'] ? 'bg_hover_color' : 'bg_hover';
2877
				$color  = sd_get_color_from_var( $args[ $key ] );
2878
				$rules .= $styleid . ':hover {background: ' . $color . ' !important;} ';
2879
				$rules .= $styleid . '.btn:hover {border-color: ' . $color . ' !important;} ';
2880
			}
2881
		}
2882
	}
2883
2884
	return $rules ? '<style>' . $rules . '</style>' : '';
2885
}
2886
2887
/**
2888
 * Try to get a CSS color variable for a given value.
2889
 *
2890
 * @param $var
2891
 *
2892
 * @return mixed|string
2893
 */
2894
function sd_get_color_from_var( $var ) {
2895
2896
	//sanitize_hex_color() @todo this does not cover transparency
2897
	if ( strpos( $var, '#' ) === false ) {
2898
		$var = defined( 'BLOCKSTRAP_BLOCKS_VERSION' ) ? 'var(--wp--preset--color--' . esc_attr( $var ) . ')' : 'var(--' . esc_attr( $var ) . ')';
2899
	}
2900
2901
	return $var;
2902
}
2903
2904
/**
2905
 * Sanitize single or multiple HTML classes.
2906
 *
2907
 * @param $classes
2908
 * @param $sep
2909
 *
2910
 * @return string
2911
 */
2912
function sd_sanitize_html_classes( $classes, $sep = ' ' ) {
2913
	$return = '';
2914
2915
	if ( ! is_array( $classes ) ) {
2916
		$classes = explode( $sep, $classes );
2917
	}
2918
2919
	if ( ! empty( $classes ) ) {
2920
		foreach ( $classes as $class ) {
2921
			$return .= sanitize_html_class( $class ) . ' ';
2922
		}
2923
	}
2924
2925
	return $return;
2926
}
2927
2928
2929
/**
2930
 * Keys that are used for the class builder.
2931
 *
2932
 * @return void
2933
 */
2934
function sd_get_class_build_keys() {
2935
	$keys = array(
2936
		'container',
2937
		'position',
2938
		'flex_direction',
2939
		'shadow',
2940
		'rounded',
2941
		'nav_style',
2942
		'horizontal_alignment',
2943
		'nav_fill',
2944
		'width',
2945
		'font_weight',
2946
		'font_size',
2947
		'font_case',
2948
		'css_class',
2949
		'flex_align_items-MTD',
2950
		'flex_justify_content-MTD',
2951
		'flex_align_self-MTD',
2952
		'flex_order-MTD',
2953
		'styleid',
2954
		'border_opacity',
2955
		'border_width',
2956
		'border_type',
2957
		'opacity',
2958
		'zindex',
2959
		'flex_wrap-MTD',
2960
		'h100',
2961
		'overflow',
2962
		'scrollbars',
2963
		'float-MTD',
2964
		'height-MTD',
2965
		'width-MTD'
2966
	);
2967
2968
	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...
2969
}
2970
2971
/**
2972
 * This is a placeholder function for the visibility conditions input.
2973
 *
2974
 * @param $type
2975
 * @param $overwrite
2976
 *
2977
 * @return array
2978
 */
2979
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

2979
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...
2980
	$defaults = array(
2981
		'type'         => 'visibility_conditions',
2982
		'title'        => __( 'Block Visibility', 'ayecode-connect' ),
2983
		'button_title' => __( 'Set Block Visibility', 'ayecode-connect' ),
2984
		'default'      => '',
2985
		'desc_tip'     => true,
2986
		'group'        => __( 'Visibility Conditions', 'ayecode-connect' ),
2987
	);
2988
2989
	$input = wp_parse_args( $overwrite, $defaults );
2990
2991
	return $input;
2992
}
2993
2994
/**
2995
 * Get a array of user roles.
2996
 *
2997
 *
2998
 *
2999
 * @param array $exclude An array of roles to exclude from the return array.
3000
 * @return array An array of roles.
3001
 */
3002
function sd_user_roles_options( $exclude = array() ) {
3003
	$user_roles = array();
3004
3005
	if ( !function_exists('get_editable_roles') ) {
3006
		require_once( ABSPATH . '/wp-admin/includes/user.php' );
3007
	}
3008
3009
	$roles = get_editable_roles();
3010
3011
	foreach ( $roles as $role => $data ) {
3012
		if ( ! ( ! empty( $exclude ) && in_array( $role, $exclude ) ) ) {
3013
			$user_roles[ esc_attr( $role ) ] = translate_user_role( $data['name'] );
3014
		}
3015
	}
3016
3017
	// Logged out as a custom role.
3018
	$user_roles['logged_out'] = __( 'Guest (logged out)', 'ayecode-connect' );
3019
3020
	return apply_filters( 'sd_user_roles_options', $user_roles );
3021
}
3022
3023
/**
3024
 * Get visibility conditions rule options.
3025
 *
3026
 *
3027
 *
3028
 * @return array Rule options.
3029
 */
3030
function sd_visibility_rules_options() {
3031
	$options = array(
3032
		'logged_in'  => __( 'Logged In', 'ayecode-connect' ),
3033
		'logged_out' => __( 'Logged Out', 'ayecode-connect' ),
3034
		'post_author'  => __( 'Post Author', 'ayecode-connect' ),
3035
		'user_roles' => __( 'Specific User Roles', 'ayecode-connect' )
3036
	);
3037
3038
	if ( class_exists( 'GeoDirectory' ) ) {
3039
		$options['gd_field'] = __( 'GD Field', 'ayecode-connect' );
3040
	}
3041
3042
	return apply_filters( 'sd_visibility_rules_options', $options );
3043
}
3044
3045
/**
3046
 * Get visibility GD field options.
3047
 *
3048
 * @return array
3049
 */
3050
function sd_visibility_gd_field_options() {
3051
	$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

3051
	$fields = /** @scrutinizer ignore-call */ geodir_post_custom_fields( '', 'all', 'all', 'none' );
Loading history...
3052
3053
	$keys = array();
3054
	if ( ! empty( $fields ) ) {
3055
		foreach( $fields as $field ) {
3056
			if ( apply_filters( 'geodir_badge_field_skip_key', false, $field ) ) {
3057
				continue;
3058
			}
3059
3060
			$keys[ $field['htmlvar_name'] ] = $field['htmlvar_name'] . ' ( ' . __( $field['admin_title'], 'geodirectory' ) . ' )';
3061
3062
			// Extra address fields
3063
			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

3063
			if ( $field['htmlvar_name'] == 'address' && ( $address_fields = /** @scrutinizer ignore-call */ geodir_post_meta_address_fields( '' ) ) ) {
Loading history...
3064
				foreach ( $address_fields as $_field => $args ) {
3065
					if ( $_field != 'map_directions' && $_field != 'street' ) {
3066
						$keys[ $_field ] = $_field . ' ( ' . $args['frontend_title'] . ' )';
3067
					}
3068
				}
3069
			}
3070
		}
3071
	}
3072
3073
	$standard_fields = sd_visibility_gd_standard_field_options();
3074
3075
	if ( ! empty( $standard_fields ) ) {
3076
		foreach ( $standard_fields as $key => $option ) {
3077
			$keys[ $key ] = $option;
3078
		}
3079
	}
3080
3081
	$options = apply_filters( 'geodir_badge_field_keys', $keys );
3082
3083
	return apply_filters( 'sd_visibility_gd_field_options', $options );
3084
}
3085
3086
/**
3087
 * Get visibility GD post standard field options.
3088
 *
3089
 * @return array
3090
 */
3091
function sd_visibility_gd_standard_field_options( $post_type = '' ) {
3092
	$fields = sd_visibility_gd_standard_fields( $post_type );
3093
3094
	$options = array();
3095
3096
	foreach ( $fields as $key => $field ) {
3097
		if ( ! empty( $field['frontend_title'] ) ) {
3098
			$options[ $key ] = $key . ' ( ' . $field['frontend_title'] . ' )';
3099
		}
3100
	}
3101
3102
	return apply_filters( 'sd_visibility_gd_standard_field_options', $options, $fields );
3103
}
3104
3105
/**
3106
 * Get visibility GD post standard fields.
3107
 *
3108
 * @return array
3109
 */
3110
function sd_visibility_gd_standard_fields( $post_type = '' ) {
3111
	$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

3111
	$standard_fields = /** @scrutinizer ignore-call */ geodir_post_meta_standard_fields( $post_type );
Loading history...
3112
3113
	$fields = array();
3114
3115
	foreach ( $standard_fields as $key => $field ) {
3116
		if ( $key != 'post_link' && strpos( $key, 'event' ) === false && ! empty( $field['frontend_title'] ) ) {
3117
			$fields[ $key ] = $field;
3118
		}
3119
	}
3120
3121
	return apply_filters( 'sd_visibility_gd_standard_fields', $fields );
3122
}
3123
3124
/**
3125
 * Get visibility field conditions options.
3126
 *
3127
 * @return array
3128
 */
3129
function sd_visibility_field_condition_options(){
3130
	$options = array(
3131
		'is_empty' => __( 'is empty', 'ayecode-connect' ),
3132
		'is_not_empty' => __( 'is not empty', 'ayecode-connect' ),
3133
		'is_equal' => __( 'is equal', 'ayecode-connect' ),
3134
		'is_not_equal' => __( 'is not equal', 'ayecode-connect' ),
3135
		'is_greater_than' => __( 'is greater than', 'ayecode-connect' ),
3136
		'is_less_than' => __( 'is less than', 'ayecode-connect' ),
3137
		'is_contains' => __( 'is contains', 'ayecode-connect' ),
3138
		'is_not_contains' => __( 'is not contains', 'ayecode-connect' ),
3139
	);
3140
3141
	return apply_filters( 'sd_visibility_field_condition_options', $options );
3142
}
3143
3144
/**
3145
 * Get visibility conditions output options.
3146
 *
3147
 *
3148
 *
3149
 * @return array Template type options.
3150
 */
3151
function sd_visibility_output_options() {
3152
	$options = array(
3153
		''              => __( 'Show Block', 'ayecode-connect' ),
3154
		'hide'          => __( 'Hide Block', 'ayecode-connect' ),
3155
		'message'       => __( 'Show Custom Message', 'ayecode-connect' ),
3156
		'page'          => __( 'Show Page Content', 'ayecode-connect' ),
3157
		'template_part' => __( 'Show Template Part', 'ayecode-connect' ),
3158
	);
3159
3160
	return apply_filters( 'sd_visibility_output_options', $options );
3161
}
3162
3163
/**
3164
 * Get the template page options.
3165
 *
3166
 *
3167
 *
3168
 * @param array $args Array of arguments.
3169
 * @return array Template page options.
3170
 */
3171
function sd_template_page_options( $args = array() ) {
3172
	global $wpdb, $sd_tmpl_page_options;
3173
3174
	$defaults = array(
3175
		'nocache' => false,
3176
		'with_slug' => false,
3177
		'default_label' => __( 'Select Page...', 'ayecode-connect' )
3178
	);
3179
3180
	$args = wp_parse_args( $args, $defaults );
3181
3182
	if ( ! empty( $sd_tmpl_page_options ) && empty( $args['nocache'] ) ) {
3183
		return $sd_tmpl_page_options;
3184
	}
3185
3186
	$exclude_pages = array();
3187
	if ( $page_on_front = get_option( 'page_on_front' ) ) {
3188
		$exclude_pages[] = $page_on_front;
3189
	}
3190
3191
	if ( $page_for_posts = get_option( 'page_for_posts' ) ) {
3192
		$exclude_pages[] = $page_for_posts;
3193
	}
3194
3195
	$exclude_pages_placeholders = '';
3196
	if ( ! empty( $exclude_pages ) ) {
3197
		// Sanitize the array of excluded pages and implode it for the SQL query.
3198
		$exclude_pages_placeholders = implode( ',', array_fill( 0, count( $exclude_pages ), '%d' ) );
3199
	}
3200
3201
	// Prepare the base SQL query.
3202
	$sql = "SELECT ID, post_title, post_name FROM " . $wpdb->posts . " WHERE post_type = 'page' AND post_status = 'publish'";
3203
3204
	// Add the exclusion if there are pages to exclude
3205
	if ( ! empty( $exclude_pages ) ) {
3206
		$sql .= " AND ID NOT IN ($exclude_pages_placeholders)";
3207
	}
3208
3209
	// Add sorting.
3210
	$sql .= " ORDER BY post_title ASC";
3211
3212
	// Add a limit.
3213
	$limit = (int) apply_filters( 'sd_template_page_options_limit', 500, $args );
3214
3215
	if ( $limit > 0 ) {
3216
		$sql .= " LIMIT " . (int) $limit;
3217
	}
3218
3219
	// Prepare the SQL query to include the excluded pages only if we have placeholders.
3220
	$pages = $exclude_pages_placeholders ? $wpdb->get_results( $wpdb->prepare( $sql, ...$exclude_pages ) ) : $wpdb->get_results( $sql );
3221
3222
	if ( ! empty( $args['default_label'] ) ) {
3223
		$options = array( '' => $args['default_label'] );
3224
	} else {
3225
		$options = array();
3226
	}
3227
3228
	if ( ! empty( $pages ) ) {
3229
		foreach ( $pages as $page ) {
3230
			$title = ! empty( $args['with_slug'] ) ? $page->post_title . ' (' . $page->post_name . ')' : ( $page->post_title . ' (#' . $page->ID . ')' );
3231
3232
			$options[ $page->ID ] = $title;
3233
		}
3234
	}
3235
3236
	$sd_tmpl_page_options = $options;
3237
3238
	return apply_filters( 'sd_template_page_options', $options, $args );
3239
}
3240
3241
/**
3242
 * Get the template part options.
3243
 *
3244
 *
3245
 *
3246
 * @param array $args Array of arguments.
3247
 * @return array Template part options.
3248
 */
3249
function sd_template_part_options( $args = array() ) {
3250
	global $sd_tmpl_part_options;
3251
3252
	if ( ! empty( $sd_tmpl_part_options ) ) {
3253
		return $sd_tmpl_part_options;
3254
	}
3255
3256
	$options = array( '' => __( 'Select Template Part...', 'ayecode-connect' ) );
3257
3258
	$parts = get_block_templates( array(), 'wp_template_part' );
3259
3260
	if ( ! empty( $parts ) ) {
3261
		foreach ( $parts as $part ) {
3262
			$options[ $part->slug ] = $part->title . ' (#' . $part->slug . ')';
3263
		}
3264
	}
3265
3266
	$sd_tmpl_part_options = $options;
3267
3268
	return apply_filters( 'sd_template_part_options', $options, $args );
3269
}
3270
3271
/**
3272
 * Get the template part by slug.
3273
 *
3274
 *
3275
 *
3276
 * @param string $slug Template slug.
3277
 * @return array Template part object.
3278
 */
3279
function sd_get_template_part_by_slug( $slug ) {
3280
	global $bs_tmpl_part_by_slug;
3281
3282
	if ( empty( $bs_tmpl_part_by_slug ) ) {
3283
		$bs_tmpl_part_by_slug = array();
3284
	}
3285
3286
	if ( isset( $bs_tmpl_part_by_slug[ $slug ] ) ) {
3287
		return $bs_tmpl_part_by_slug[ $slug ];
3288
	}
3289
3290
	$template_query = get_block_templates( array( 'slug__in' => array( $slug ) ), 'wp_template_part' );
3291
3292
	$query_post = ! empty( $template_query ) ? $template_query[0] : array();
3293
3294
	$template_part = ! empty( $query_post ) && $query_post->status == 'publish' ? $query_post : array();
3295
3296
	$bs_tmpl_part_by_slug[ $slug ] = $template_part;
3297
3298
	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...
3299
}
3300
3301
/**
3302
 * Filters the content of a single block.
3303
 *
3304
 *
3305
 *
3306
 * @param string   $block_content The block content.
3307
 * @param array    $block         The full block, including name and attributes.
3308
 * @param WP_Block $instance      The block instance.
3309
 */
3310
function sd_render_block( $block_content, $block, $instance = '' ) {
3311
	// No block visibility conditions set.
3312
	if ( empty( $block['attrs']['visibility_conditions'] ) ) {
3313
		return $block_content;
3314
	}
3315
3316
	$attributes = json_decode( $block['attrs']['visibility_conditions'], true );
3317
	$rules = ! empty( $attributes ) ? sd_block_parse_rules( $attributes ) : array();
3318
3319
	// No rules set.
3320
	if ( empty( $rules ) ) {
3321
		return $block_content;
3322
	}
3323
3324
	$check_rules = null;
3325
	$_block_content = $block_content;
3326
3327
	if ( ! empty( $rules ) && ( ! empty( $attributes['output'] ) || ! empty( $attributes['outputN'] ) ) ) {
3328
		$check_rules = sd_block_check_rules( $rules );
3329
3330
		if ( $check_rules ) {
3331
			$output_condition = ! empty( $attributes['output'] ) ? $attributes['output'] : array();
3332
		} else {
3333
			$output_condition = ! empty( $attributes['outputN'] ) ? $attributes['outputN'] : array();
3334
		}
3335
3336
		if ( ! empty( $output_condition ) && ! empty( $output_condition['type'] ) ) {
3337
			switch ( $output_condition['type'] ) {
3338
				case 'hide':
3339
					$valid_type = true;
3340
					$content = '';
3341
3342
					break;
3343
				case 'message':
3344
					$valid_type = true;
3345
3346
					if ( isset( $output_condition['message'] ) ) {
3347
						$content = $output_condition['message'] != '' ? __( stripslashes( $output_condition['message'] ), 'ayecode-connect' ) : $output_condition['message'];
3348
3349
						if ( ! empty( $output_condition['message_type'] ) ) {
3350
							$content = aui()->alert( array(
3351
									'type'=> $output_condition['message_type'],
3352
									'content'=> $content
3353
								)
3354
							);
3355
						}
3356
					}
3357
3358
					break;
3359
				case 'page':
3360
					$valid_type = true;
3361
3362
					$page_id = ! empty( $output_condition['page'] ) ? absint( $output_condition['page'] ) : 0;
3363
					$content = sd_get_page_content( $page_id );
3364
3365
					break;
3366
				case 'template_part':
3367
					$valid_type = true;
3368
3369
					$template_part = ! empty( $output_condition['template_part'] ) ? $output_condition['template_part'] : '';
3370
					$content = sd_get_template_part_content( $template_part );
3371
3372
					break;
3373
				default:
3374
					$valid_type = false;
3375
					break;
3376
			}
3377
3378
			if ( $valid_type ) {
3379
				$block_content = '<div class="' . esc_attr( wp_get_block_default_classname( $instance->name ) ) . ' sd-block-has-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...
3380
			}
3381
		}
3382
	}
3383
3384
	return apply_filters( 'sd_render_block_visibility_content', $block_content, $_block_content, $attributes, $block, $instance, $check_rules );
3385
}
3386
add_filter( 'render_block', 'sd_render_block', 9, 3 );
3387
3388
function sd_get_page_content( $page_id ) {
3389
	$content = $page_id > 0 ? get_post_field( 'post_content', (int) $page_id ) : '';
3390
3391
	// Maybe bypass content
3392
	$bypass_content = apply_filters( 'sd_bypass_page_content', '', $content, $page_id );
3393
	if ( $bypass_content ) {
3394
		return $bypass_content;
3395
	}
3396
3397
	// Run the shortcodes on the content.
3398
	$content = do_shortcode( $content );
3399
3400
	// Run block content if its available.
3401
	if ( function_exists( 'do_blocks' ) ) {
3402
		$content = do_blocks( $content );
3403
	}
3404
3405
	return apply_filters( 'sd_get_page_content', $content, $page_id );
3406
}
3407
3408
function sd_get_template_part_content( $template_part ) {
3409
	$template_part_post = $template_part ? sd_get_template_part_by_slug( $template_part ) : array();
3410
	$content = ! empty( $template_part_post ) ? $template_part_post->content : '';
3411
3412
	// Maybe bypass content
3413
	$bypass_content = apply_filters( 'sd_bypass_template_part_content', '', $content, $template_part );
3414
	if ( $bypass_content ) {
3415
		return $bypass_content;
3416
	}
3417
3418
	// Run the shortcodes on the content.
3419
	$content = do_shortcode( $content );
3420
3421
	// Run block content if its available.
3422
	if ( function_exists( 'do_blocks' ) ) {
3423
		$content = do_blocks( $content );
3424
	}
3425
3426
	return apply_filters( 'sd_get_template_part_content', $content, $template_part );
3427
}
3428
3429
function sd_block_parse_rules( $attrs ) {
3430
	$rules = array();
3431
3432
	if ( ! empty( $attrs ) && is_array( $attrs ) ) {
3433
		$attrs_keys = array_keys( $attrs );
3434
3435
		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...
3436
			if ( ! empty( $attrs[ 'rule' . $i ] ) && is_array( $attrs[ 'rule' . $i ] ) ) {
3437
				$rules[] = $attrs[ 'rule' . $i ];
3438
			}
3439
		}
3440
	}
3441
3442
	return apply_filters( 'sd_block_parse_rules', $rules, $attrs );
3443
}
3444
3445
function sd_block_check_rules( $rules ) {
3446
	if ( ! ( is_array( $rules ) && ! empty( $rules ) ) ) {
3447
		return true;
3448
	}
3449
3450
	foreach ( $rules as $key => $rule ) {
3451
		$match = apply_filters( 'sd_block_check_rule', true, $rule );
3452
3453
		if ( ! $match ) {
3454
			break;
3455
		}
3456
	}
3457
3458
	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 3450. Are you sure the iterator is never empty, otherwise this variable is not defined?
Loading history...
3459
}
3460
3461
function sd_block_check_rule( $match, $rule ) {
3462
	global $post;
3463
3464
	if ( $match && ! empty( $rule['type'] ) ) {
3465
		switch ( $rule['type'] ) {
3466
			case 'logged_in':
3467
				$match = (bool) is_user_logged_in();
3468
3469
				break;
3470
			case 'logged_out':
3471
				$match = ! is_user_logged_in();
3472
3473
				break;
3474
			case 'post_author':
3475
				if ( ! empty( $post ) && $post->post_type != 'page' && ! empty( $post->post_author ) && is_user_logged_in() ) {
3476
					$match = (int) $post->post_author === (int) get_current_user_id() ? true : false;
3477
				} else {
3478
					$match = false;
3479
				}
3480
3481
				break;
3482
			case 'user_roles':
3483
				$match = false;
3484
3485
				if ( ! empty( $rule['user_roles'] ) ) {
3486
					$user_roles = is_scalar( $rule['user_roles'] ) ? explode( ",", $rule['user_roles'] ) : $rule['user_roles'];
3487
3488
					if ( is_array( $user_roles ) ) {
3489
						$user_roles = array_filter( array_map( 'trim', $user_roles ) );
3490
					}
3491
3492
					if ( ! empty( $user_roles ) && is_array( $user_roles ) ) {
3493
						if ( is_user_logged_in() && ( $current_user = wp_get_current_user() ) ) {
3494
							$current_user_roles = $current_user->roles;
3495
3496
							foreach ( $user_roles as $role ) {
3497
								if ( in_array( $role, $current_user_roles ) ) {
3498
									$match = true;
3499
								}
3500
							}
3501
						} else {
3502
							// Logged out role.
3503
							if ( in_array( 'logged_out', $user_roles ) ) {
3504
								$match = true;
3505
							}
3506
						}
3507
					}
3508
				}
3509
3510
				break;
3511
			case 'gd_field':
3512
				$match = sd_block_check_rule_gd_field( $rule );
3513
3514
				break;
3515
3516
			default:
3517
				$match = apply_filters( 'sd_block_check_custom_rule', $match, $rule );
3518
				break;
3519
		}
3520
	}
3521
3522
	return $match;
3523
}
3524
add_filter( 'sd_block_check_rule', 'sd_block_check_rule', 10, 2 );
3525
3526
function sd_block_check_rule_gd_field( $rule ) {
3527
	global $gd_post;
3528
3529
	$match_found = false;
3530
3531
	if ( class_exists( 'GeoDirectory' ) && ! empty( $gd_post->ID ) && ! empty( $rule['field'] ) && ! empty( $rule['condition'] ) ) {
3532
		$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...
3533
		$args['key'] = $rule['field'];
3534
		$args['condition'] = $rule['condition'];
3535
		$args['search'] = isset( $rule['search'] ) ? $rule['search'] : '';
3536
3537
		if ( $args['key'] == 'street' ) {
3538
			$args['key'] = 'address';
3539
		}
3540
3541
		$match_field = $_match_field = $args['key'];
3542
3543
		if ( $match_field == 'address' ) {
3544
			$match_field = 'street';
3545
		} elseif ( $match_field == 'post_images' ) {
3546
			$match_field = 'featured_image';
3547
		}
3548
3549
		$find_post = $gd_post;
3550
		$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3551
3552
		if ( ! empty( $find_post->ID ) && ! in_array( 'post_category', $find_post_keys ) ) {
3553
			$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

3553
			$find_post = /** @scrutinizer ignore-call */ geodir_get_post_info( (int) $find_post->ID );
Loading history...
3554
			$find_post_keys = ! empty( $find_post ) ? array_keys( (array) $find_post ) : array();
3555
		}
3556
3557
		if ( $match_field === '' || ( ! empty( $find_post_keys ) && ( in_array( $match_field, $find_post_keys ) || in_array( $_match_field, $find_post_keys ) ) ) ) {
3558
			$address_fields = array( 'street2', 'neighbourhood', 'city', 'region', 'country', 'zip', 'latitude', 'longitude' ); // Address fields
3559
			$field = array();
3560
			$empty_field = false;
3561
3562
			$standard_fields = sd_visibility_gd_standard_fields();
3563
3564
			if ( $match_field && ! in_array( $match_field, array_keys( $standard_fields ) ) && ! in_array( $match_field, $address_fields ) ) {
3565
				$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

3565
				$package_id = /** @scrutinizer ignore-call */ geodir_get_post_package_id( $find_post->ID, $find_post->post_type );
Loading history...
3566
				$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

3566
				$fields = /** @scrutinizer ignore-call */ geodir_post_custom_fields( $package_id, 'all', $find_post->post_type, 'none' );
Loading history...
3567
3568
				foreach ( $fields as $field_info ) {
3569
					if ( $match_field == $field_info['htmlvar_name'] ) {
3570
						$field = $field_info;
3571
						break;
3572
					} elseif( $_match_field == $field_info['htmlvar_name'] ) {
3573
						$field = $field_info;
3574
						break;
3575
					}
3576
				}
3577
3578
				if ( empty( $field ) ) {
3579
					$empty_field = true;
3580
				}
3581
			}
3582
3583
			// Address fields.
3584
			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

3584
			if ( in_array( $match_field, $address_fields ) && ( $address_fields = /** @scrutinizer ignore-call */ geodir_post_meta_address_fields( '' ) ) ) {
Loading history...
3585
				if ( ! empty( $address_fields[ $match_field ] ) ) {
3586
					$field = $address_fields[ $match_field ];
3587
				}
3588
			} else if ( in_array( $match_field, array_keys( $standard_fields ) ) ) {
3589
				if ( ! empty( $standard_fields[ $match_field ] ) ) {
3590
					$field = $standard_fields[ $match_field ];
3591
				}
3592
			}
3593
3594
			// Parse search.
3595
			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3596
3597
			$is_date = ( ! empty( $field['type'] ) && $field['type'] == 'datepicker' ) || in_array( $match_field, array( 'post_date', 'post_modified' ) ) ? true : false;
3598
			$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...
3599
3600
			$match_value = isset( $find_post->{$match_field} ) && empty( $empty_field ) ? esc_attr( trim( $find_post->{$match_field} ) ) : '';
3601
			$match_found = $match_field === '' ? true : false;
3602
3603
			if ( ! $match_found ) {
3604
				if ( ( $match_field == 'post_date' || $match_field == 'post_modified' ) && ( empty( $args['condition'] ) || $args['condition'] == 'is_greater_than' || $args['condition'] == 'is_less_than' ) ) {
3605
					if ( strpos( $search, '+' ) === false && strpos( $search, '-' ) === false ) {
3606
						$search = '+' . $search;
3607
					}
3608
					$the_time = $match_field == 'post_modified' ? get_the_modified_date( 'Y-m-d', $find_post ) : get_the_time( 'Y-m-d', $find_post );
3609
					$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

3609
					$until_time = strtotime( /** @scrutinizer ignore-type */ $the_time . ' ' . $search . ' days' );
Loading history...
3610
					$now_time   = strtotime( date_i18n( 'Y-m-d', current_time( 'timestamp' ) ) );
3611
					if ( ( empty( $args['condition'] ) || $args['condition'] == 'is_less_than' ) && $until_time > $now_time ) {
3612
						$match_found = true;
3613
					} elseif ( $args['condition'] == 'is_greater_than' && $until_time < $now_time ) {
3614
						$match_found = true;
3615
					}
3616
				} else {
3617
					switch ( $args['condition'] ) {
3618
						case 'is_equal':
3619
							$match_found = (bool) ( $search != '' && $match_value == $search );
3620
							break;
3621
						case 'is_not_equal':
3622
							$match_found = (bool) ( $search != '' && $match_value != $search );
3623
							break;
3624
						case 'is_greater_than':
3625
							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value > $search );
3626
							break;
3627
						case 'is_less_than':
3628
							$match_found = (bool) ( $search != '' && ( is_float( $search ) || is_numeric( $search ) ) && ( is_float( $match_value ) || is_numeric( $match_value ) ) && $match_value < $search );
3629
							break;
3630
						case 'is_empty':
3631
							$match_found = (bool) ( $match_value === '' || $match_value === false || $match_value === '0' || is_null( $match_value ) );
3632
							break;
3633
						case 'is_not_empty':
3634
							$match_found = (bool) ( $match_value !== '' && $match_value !== false && $match_value !== '0' && ! is_null( $match_value ) );
3635
							break;
3636
						case 'is_contains':
3637
							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) !== false );
3638
							break;
3639
						case 'is_not_contains':
3640
							$match_found = (bool) ( $search != '' && stripos( $match_value, $search ) === false );
3641
							break;
3642
					}
3643
				}
3644
			}
3645
3646
			$match_found = apply_filters( 'geodir_post_badge_check_match_found', $match_found, $args, $find_post );
3647
		} else {
3648
			$field = array();
3649
3650
			// Parse search.
3651
			$search = sd_gd_field_rule_search( $args['search'], $find_post->post_type, $rule, $field, $find_post );
3652
3653
			$match_value = '';
3654
			$match_found = $match_field === '' ? true : false;
3655
3656
			if ( ! $match_found ) {
3657
				switch ( $args['condition'] ) {
3658
					case 'is_equal':
3659
						$match_found = (bool) ( $search != '' && $match_value == $search );
3660
						break;
3661
					case 'is_not_equal':
3662
						$match_found = (bool) ( $search != '' && $match_value != $search );
3663
						break;
3664
					case 'is_greater_than':
3665
						$match_found = false;
3666
						break;
3667
					case 'is_less_than':
3668
						$match_found = false;
3669
						break;
3670
					case 'is_empty':
3671
						$match_found = true;
3672
						break;
3673
					case 'is_not_empty':
3674
						$match_found = false;
3675
						break;
3676
					case 'is_contains':
3677
						$match_found = false;
3678
						break;
3679
					case 'is_not_contains':
3680
						$match_found = false;
3681
						break;
3682
				}
3683
			}
3684
3685
			$match_found = apply_filters( 'geodir_post_badge_check_match_found_empty', $match_found, $args, $find_post );
3686
		}
3687
	}
3688
3689
	return $match_found;
3690
}
3691
3692
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

3692
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

3692
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...
3693
	global $post;
3694
3695
	if ( ! $search ) {
3696
		return $search;
3697
	}
3698
3699
	$orig_search = $search;
3700
	$_search = strtolower( $search );
3701
3702
	if ( ! empty( $rule['field'] ) && $rule['field'] == 'post_author' ) {
3703
		if ( $search == 'current_user' ) {
3704
			$search = is_user_logged_in() ? (int) get_current_user_id() : - 1;
3705
		} else if ( $search == 'current_author' ) {
3706
			$search = ( ! empty( $post ) && $post->post_type != 'page' && isset( $post->post_author ) ) ? absint( $post->post_author ) : - 1;
3707
		}
3708
	} else if ( $_search == 'date_today' ) {
3709
		$search = date( 'Y-m-d' );
3710
	} else if ( $_search == 'date_tomorrow' ) {
3711
		$search = date( 'Y-m-d', strtotime( "+1 day" ) );
3712
	} else if ( $_search == 'date_yesterday' ) {
3713
		$search = date( 'Y-m-d', strtotime( "-1 day" ) );
3714
	} else if ( $_search == 'time_his' ) {
3715
		$search = date( 'H:i:s' );
3716
	} else if ( $_search == 'time_hi' ) {
3717
		$search = date( 'H:i' );
3718
	} else if ( $_search == 'datetime_now' ) {
3719
		$search = date( 'Y-m-d H:i:s' );
3720
	} else if ( strpos( $_search, 'datetime_after_' ) === 0 ) {
3721
		$_searches = explode( 'datetime_after_', $_search, 2 );
3722
3723
		if ( ! empty( $_searches[1] ) ) {
3724
			$search = date( 'Y-m-d H:i:s', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3725
		} else {
3726
			$search = date( 'Y-m-d H:i:s' );
3727
		}
3728
	} else if ( strpos( $_search, 'datetime_before_' ) === 0 ) {
3729
		$_searches = explode( 'datetime_before_', $_search, 2 );
3730
3731
		if ( ! empty( $_searches[1] ) ) {
3732
			$search = date( 'Y-m-d H:i:s', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3733
		} else {
3734
			$search = date( 'Y-m-d H:i:s' );
3735
		}
3736
	} else if ( strpos( $_search, 'date_after_' ) === 0 ) {
3737
		$_searches = explode( 'date_after_', $_search, 2 );
3738
3739
		if ( ! empty( $_searches[1] ) ) {
3740
			$search = date( 'Y-m-d', strtotime( "+ " . str_replace( "_", " ", $_searches[1] ) ) );
3741
		} else {
3742
			$search = date( 'Y-m-d' );
3743
		}
3744
	} else if ( strpos( $_search, 'date_before_' ) === 0 ) {
3745
		$_searches = explode( 'date_before_', $_search, 2 );
3746
3747
		if ( ! empty( $_searches[1] ) ) {
3748
			$search = date( 'Y-m-d', strtotime( "- " . str_replace( "_", " ", $_searches[1] ) ) );
3749
		} else {
3750
			$search = date( 'Y-m-d' );
3751
		}
3752
	}
3753
3754
	return apply_filters( 'sd_gd_field_rule_search', $search, $post_type, $rule, $orig_search );
3755
}
3756
3757
3758
if(!function_exists('sd_blocks_render_blocks')){
3759
	/**
3760
	 * Add the shortcodes to the block content if set as an attribute.
3761
	 *
3762
	 * We have moved the shortcodes from the block content to a block argument to help prevent broken blocks.
3763
	 *
3764
	 * @param $block_content
3765
	 * @param $parsed_block
3766
	 * @param $thiss
3767
	 * @return mixed|string
3768
	 */
3769
	function sd_blocks_render_blocks($block_content, $parsed_block, $thiss = array() ){
0 ignored issues
show
Unused Code introduced by
The parameter $thiss 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

3769
	function sd_blocks_render_blocks($block_content, $parsed_block, /** @scrutinizer ignore-unused */ $thiss = 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...
3770
3771
		// Check if ita a nested block that needs to be wrapped
3772
		if(! empty($parsed_block['attrs']['sd_shortcode_close'])){
3773
			$content = isset($parsed_block['attrs']['html']) ? $parsed_block['attrs']['html'] : $block_content;
3774
			$block_content = $parsed_block['attrs']['sd_shortcode'].$content.$parsed_block['attrs']['sd_shortcode_close'];
3775
3776
			$block_content = do_shortcode($block_content);
3777
3778
		}elseif(! empty($parsed_block['attrs']['sd_shortcode'])){
3779
			$has_warp = false;
3780
			if($block_content && strpos(trim($block_content), '<div class="wp-block-') === 0 ){
3781
				$parts = explode('></', $block_content);
3782
				if(count($parts) === 2){
3783
					$block_content = $parts[0].'>'.$parsed_block['attrs']['sd_shortcode'].'</'.$parts[1];
3784
					$has_warp = true;
3785
				}
3786
			}
3787
			if (!$has_warp) {
3788
				// Add the shortcode if its not a wrapped block
3789
				$block_content .= $parsed_block['attrs']['sd_shortcode'];
3790
			}
3791
3792
			$block_content = do_shortcode($block_content);
3793
		}
3794
		return  $block_content;
3795
	}
3796
}
3797
3798
add_filter('render_block', 'sd_blocks_render_blocks',10,3);
3799
3800