LSX_Customizer_Login::get_css()   B
last analyzed

Complexity

Conditions 11
Paths 32

Size

Total Lines 60
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 5
Bugs 0 Features 0
Metric Value
cc 11
eloc 35
nc 32
nop 1
dl 0
loc 60
rs 7.3166
c 5
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
0 ignored issues
show
Coding Style introduced by
This file is missing a doc comment.
Loading history...
2
if ( ! class_exists( 'LSX_Customizer_Login' ) ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
3
4
	/**
5
	 * LSX Customizer Login Class
6
	 *
7
	 * @package   LSX Customizer
8
	 * @author    LightSpeed
9
	 * @license   GPL3
10
	 * @link
11
	 * @copyright 2019 LightSpeed
12
	 */
13
	class LSX_Customizer_Login extends LSX_Customizer {
14
15
		/**
16
		 * Constructor.
17
		 *
18
		 * @since 1.0.0
19
		 */
20
		public function __construct() {
0 ignored issues
show
Coding Style introduced by
Expected 2 blank lines before function; 1 found
Loading history...
21
			add_action( 'customize_register', array( $this, 'register_general' ), 20 );
22
			add_action( 'customize_register', array( $this, 'register_form' ), 30 );
23
			add_action( 'customize_register', array( $this, 'register_background' ), 40 );
24
25
			add_action( 'after_switch_theme', array( $this, 'set_theme_mod' ) );
26
			add_action( 'customize_save_after', array( $this, 'set_theme_mod' ) );
27
			add_action( 'login_enqueue_scripts', array( $this, 'enqueue_css' ), 2999 );
28
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
29
30
		/**
31
		 * Customizer Controls and Settings.
32
		 *
33
		 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
34
		 * @since 1.0.0
35
		 */
36
		public function register_general( $wp_customize ) {
37
			/**
38
			 * Register the main panel
39
			 */
40
			$wp_customize->add_panel(
41
				'login',
42
				array(
43
					'title'    => esc_html__( 'WP Login Screen', 'lsx-customizer' ),
44
					'priority' => 60,
45
				)
46
			);
47
48
			/**
49
			 * Reigster the Form section
50
			 */
51
			$wp_customize->add_section(
52
				'login-general',
53
				array(
54
					'title'    => esc_html__( 'General', 'lsx-customizer' ),
55
					'priority' => 1,
56
					'panel'    => 'login',
57
				)
58
			);
59
60
			/**
61
			 * Select the background repeat.
62
			 */
63
			$wp_customize->add_setting(
64
				'lsx_login_logo',
65
				array(
66
					'default'   => '',
67
					'type'      => 'theme_mod',
68
					'transport' => 'postMessage',
69
				)
70
			);
71
72
			$wp_customize->add_control(
73
				new WP_Customize_Image_Control(
74
					$wp_customize,
75
					'lsx_login_logo',
76
					array(
77
						'label'    => __( 'Upload a logo', 'lsx-customizer' ),
78
						'section'  => 'login-general',
79
						'settings' => 'lsx_login_logo',
80
					)
81
				)
82
			);
83
84
			/**
85
			 * Link Colour
86
			 */
87
			$wp_customize->add_setting(
88
				'lsx_login_link_colour',
89
				array(
90
					'default'   => '0085ba',
91
					'type'      => 'theme_mod',
92
					'transport' => 'postMessage',
93
				)
94
			);
95
			$wp_customize->add_control(
96
				new WP_Customize_Color_Control(
97
					$wp_customize,
98
					'lsx_login_link_colour',
99
					array(
100
						'label'    => __( 'Link Colour', 'lsx-customizer' ),
101
						'section'  => 'login-general',
102
						'settings' => 'lsx_login_link_colour',
103
					)
104
				)
105
			);
106
107
			/**
108
			 * Link Hover Colour
109
			 */
110
			$wp_customize->add_setting(
111
				'lsx_login_link_hover_colour',
112
				array(
113
					'default'   => '000000',
114
					'type'      => 'theme_mod',
115
					'transport' => 'postMessage',
116
				)
117
			);
118
			$wp_customize->add_control(
119
				new WP_Customize_Color_Control(
120
					$wp_customize,
121
					'lsx_login_link_hover_colour',
122
					array(
123
						'label'    => __( 'Link Hover Colour', 'lsx-customizer' ),
124
						'section'  => 'login-general',
125
						'settings' => 'lsx_login_link_hover_colour',
126
					)
127
				)
128
			);
129
130
			/**
131
			 * Add in the custom CSS.
132
			 */
133
			$wp_customize->add_setting(
134
				'lsx_login_custom_css',
135
				array(
136
					'default'   => '',
137
					'type'      => 'theme_mod',
138
					'transport' => 'postMessage',
139
				)
140
			);
141
			$wp_customize->add_control(
142
				new WP_Customize_Control(
143
					$wp_customize,
144
					'lsx_login_custom_css',
145
					array(
146
						'label'    => __( 'Custom CSS', 'lsx-customizer' ),
147
						'section'  => 'login-general',
148
						'settings' => 'lsx_login_custom_css',
149
						'type'     => 'textarea',
150
					)
151
				)
152
			);
153
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
154
155
		/**
156
		 * Customizer Controls and Settings.
157
		 *
158
		 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
159
		 * @since 1.0.0
160
		 */
161
		public function register_form( $wp_customize ) {
162
			/**
163
			 * Reigster the Form section
164
			 */
165
			$wp_customize->add_section(
166
				'login-form',
167
				array(
168
					'title'    => esc_html__( 'Form', 'lsx-customizer' ),
169
					'priority' => 1,
170
					'panel'    => 'login',
171
				)
172
			);
173
174
			/**
175
			 * Form Background Colour
176
			 */
177
			$wp_customize->add_setting(
178
				'lsx_login_form_colour',
179
				array(
180
					'default'   => 'ffffff',
181
					'type'      => 'theme_mod',
182
					'transport' => 'postMessage',
183
				)
184
			);
185
			$wp_customize->add_control(
186
				new WP_Customize_Color_Control(
187
					$wp_customize,
188
					'lsx_login_form_colour',
189
					array(
190
						'label'    => __( 'Form Background Colour', 'lsx-customizer' ),
191
						'section'  => 'login-form',
192
						'settings' => 'lsx_login_form_colour',
193
					)
194
				)
195
			);
196
197
			/**
198
			 * Form Label Colour
199
			 */
200
			$wp_customize->add_setting(
201
				'lsx_login_form_label_colour',
202
				array(
203
					'default'   => 'ffffff',
204
					'type'      => 'theme_mod',
205
					'transport' => 'postMessage',
206
				)
207
			);
208
			$wp_customize->add_control(
209
				new WP_Customize_Color_Control(
210
					$wp_customize,
211
					'lsx_login_form_label_colour',
212
					array(
213
						'label'    => __( 'Form Label Colour', 'lsx-customizer' ),
214
						'section'  => 'login-form',
215
						'settings' => 'lsx_login_form_label_colour',
216
					)
217
				)
218
			);
219
220
			/**
221
			 * Button Colour
222
			 */
223
			$wp_customize->add_setting(
224
				'lsx_login_button_colour',
225
				array(
226
					'default'   => '000000',
227
					'type'      => 'theme_mod',
228
					'transport' => 'postMessage',
229
				)
230
			);
231
			$wp_customize->add_control(
232
				new WP_Customize_Color_Control(
233
					$wp_customize,
234
					'lsx_login_button_colour',
235
					array(
236
						'label'    => __( 'Button Colour', 'lsx-customizer' ),
237
						'section'  => 'login-form',
238
						'settings' => 'lsx_login_button_colour',
239
					)
240
				)
241
			);
242
243
			/**
244
			 * Button Shadow Colour
245
			 */
246
			$wp_customize->add_setting(
247
				'lsx_login_button_shadow_colour',
248
				array(
249
					'default'   => '015d82',
250
					'type'      => 'theme_mod',
251
					'transport' => 'postMessage',
252
				)
253
			);
254
			$wp_customize->add_control(
255
				new WP_Customize_Color_Control(
256
					$wp_customize,
257
					'lsx_login_button_shadow_colour',
258
					array(
259
						'label'    => __( 'Button Shadow Colour', 'lsx-customizer' ),
260
						'section'  => 'login-form',
261
						'settings' => 'lsx_login_button_shadow_colour',
262
					)
263
				)
264
			);
265
266
			/**
267
			 * Button Hover Colour
268
			 */
269
			$wp_customize->add_setting(
270
				'lsx_login_button_hover_colour',
271
				array(
272
					'default'   => '000000',
273
					'type'      => 'theme_mod',
274
					'transport' => 'postMessage',
275
				)
276
			);
277
			$wp_customize->add_control(
278
				new WP_Customize_Color_Control(
279
					$wp_customize,
280
					'lsx_login_button_hover_colour',
281
					array(
282
						'label'    => __( 'Button Hover Colour', 'lsx-customizer' ),
283
						'section'  => 'login-form',
284
						'settings' => 'lsx_login_button_hover_colour',
285
					)
286
				)
287
			);
288
289
			/**
290
			 * Button Text Colour
291
			 */
292
			$wp_customize->add_setting(
293
				'lsx_login_button_text_colour',
294
				array(
295
					'default'   => '0085ba',
296
					'type'      => 'theme_mod',
297
					'transport' => 'postMessage',
298
				)
299
			);
300
			$wp_customize->add_control(
301
				new WP_Customize_Color_Control(
302
					$wp_customize,
303
					'lsx_login_button_text_colour',
304
					array(
305
						'label'    => __( 'Button Text Colour', 'lsx-customizer' ),
306
						'section'  => 'login-form',
307
						'settings' => 'lsx_login_button_text_colour',
308
					)
309
				)
310
			);
311
312
		}
0 ignored issues
show
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
313
314
		/**
315
		 * Customizer Controls and Settings.
316
		 *
317
		 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
318
		 * @since 1.0.0
319
		 */
320
		public function register_background( $wp_customize ) {
321
			$wp_customize->add_section(
322
				'login-background',
323
				array(
324
					'title'    => esc_html__( 'Background', 'lsx-customizer' ),
325
					'priority' => 1,
326
					'panel'    => 'login',
327
				)
328
			);
329
			/**
330
			 * Background Colour
331
			 */
332
			$wp_customize->add_setting(
333
				'lsx_login_bg_colour',
334
				array(
335
					'default'   => 'ffffff',
336
					'type'      => 'theme_mod',
337
					'transport' => 'postMessage',
338
				)
339
			);
340
			$wp_customize->add_control(
341
				new WP_Customize_Color_Control(
342
					$wp_customize,
343
					'lsx_login_bg_colour',
344
					array(
345
						'label'    => __( 'Background Colour', 'lsx-customizer' ),
346
						'section'  => 'login-background',
347
						'settings' => 'lsx_login_bg_colour',
348
					)
349
				)
350
			);
351
352
			/**
353
			 * Upload a Background Image
354
			 */
355
			$wp_customize->add_setting(
356
				'lsx_login_bg_image',
357
				array(
358
					'default'   => '',
359
					'type'      => 'theme_mod',
360
					'transport' => 'postMessage',
361
				)
362
			);
363
364
			$wp_customize->add_control(
365
				new WP_Customize_Image_Control(
366
					$wp_customize,
367
					'lsx_login_bg_image',
368
					array(
369
						'label'    => __( 'Background Image', 'lsx-customizer' ),
370
						'section'  => 'login-background',
371
						'settings' => 'lsx_login_bg_image',
372
					)
373
				)
374
			);
375
376
			/**
377
			 * Select the background repeat.
378
			 */
379
			$wp_customize->add_setting(
380
				'lsx_login_bg_repeat',
381
				array(
382
					'default'   => 'no-repeat',
383
					'type'      => 'theme_mod',
384
					'transport' => 'postMessage',
385
				)
386
			);
387
			$wp_customize->add_control(
388
				new WP_Customize_Control(
389
					$wp_customize,
390
					'lsx_login_bg_repeat',
391
					array(
392
						'label'    => __( 'Background Repeat', 'lsx-customizer' ),
393
						'section'  => 'login-background',
394
						'settings' => 'lsx_login_bg_repeat',
395
						'type'     => 'select',
396
						'choices'  => array(
397
							'no-repeat'  => __( 'No Repeat', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 1 space(s) between "'no-repeat'" and double arrow, but found 2.
Loading history...
398
							'repeat'  => __( 'Repeat', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 4 space(s) between "'repeat'" and double arrow, but found 2.
Loading history...
399
							'repeat-x' => __( 'Repeat Horizontally', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 2 space(s) between "'repeat-x'" and double arrow, but found 1.
Loading history...
400
							'repeat-y' => __( 'Repeat Vertically', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 2 space(s) between "'repeat-y'" and double arrow, but found 1.
Loading history...
401
						),
402
					)
403
				)
404
			);
405
406
			/**
407
			 * Select the background repeat.
408
			 */
409
			$wp_customize->add_setting(
410
				'lsx_login_bg_size',
411
				array(
412
					'default'   => 'none',
413
					'type'      => 'theme_mod',
414
					'transport' => 'postMessage',
415
				)
416
			);
417
			$wp_customize->add_control(
418
				new WP_Customize_Control(
419
					$wp_customize,
420
					'lsx_login_bg_size',
421
					array(
422
						'label'    => __( 'Background Size', 'lsx-customizer' ),
423
						'section'  => 'login-background',
424
						'settings' => 'lsx_login_bg_size',
425
						'type'     => 'select',
426
						'choices'  => array(
427
							'initial'  => __( 'None', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 1 space(s) between "'initial'" and double arrow, but found 2.
Loading history...
428
							'cover'  => __( 'Cover', 'lsx-customizer' ),
0 ignored issues
show
introduced by
Array double arrow not aligned correctly; expected 3 space(s) between "'cover'" and double arrow, but found 2.
Loading history...
429
							'contain' => __( 'Contain', 'lsx-customizer' ),
430
						),
431
					)
432
				)
433
			);
434
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
435
436
		/**
437
		 * Assign CSS to theme mod.
438
		 *
439
		 * @since 1.0.0
440
		 */
441
		public function set_theme_mod() {
442
			$theme_mods = $this->get_theme_mods();
443
			$styles     = $this->get_css( $theme_mods );
444
445
			set_theme_mod( 'lsx_customizer_login_styles', $styles );
446
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
447
448
		/**
449
		 * Enqueues front-end CSS.
450
		 *
451
		 * @since 1.0.0
452
		 */
453
		public function enqueue_css() {
454
			$styles_from_theme_mod = get_theme_mod( 'lsx_customizer_login_styles' );
455
			if ( is_customize_preview() || false === $styles_from_theme_mod ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
456
				$theme_mods = $this->get_theme_mods();
457
				$styles     = $this->get_css( $theme_mods );
458
459
				if ( false === $styles_from_theme_mod ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
460
					set_theme_mod( 'lsx_customizer_login_styles', $styles );
461
				}
462
			} else {
463
				$styles = $styles_from_theme_mod;
464
			}
0 ignored issues
show
Coding Style introduced by
No blank line found after control structure
Loading history...
465
			echo wp_kses(
466
				$styles,
467
				array(
468
					'style' => array(),
469
				)
470
			);
471
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
472
473
		/**
474
		 * Get CSS theme mods.
475
		 *
476
		 * @since 1.0.0
477
		 */
478
		public function get_theme_mods() {
479
			$mods = apply_filters(
480
				'lsx_customizer_login_styles',
481
				array(
482
					'logo'                    => get_theme_mod( 'lsx_login_logo', '' ),
483
					'link_colour'             => get_theme_mod( 'lsx_login_link_colour', '#0085ba' ),
484
					'link_hover_colour'       => get_theme_mod( 'lsx_login_link_hover_colour', '#0085ba' ),
485
					'button_colour'           => get_theme_mod( 'lsx_login_button_colour', '#0085ba' ),
486
					'button_shadow_colour'    => get_theme_mod( 'lsx_login_button_shadow_colour', '#015d82' ),
487
					'button_hover_colour'     => get_theme_mod( 'lsx_login_button_hover_colour', '#015d82' ),
488
					'button_text_colour'      => get_theme_mod( 'lsx_login_button_text_colour', '#ffffff' ),
489
					'login_form_colour'       => get_theme_mod( 'lsx_login_form_colour', '#ffffff' ),
490
					'login_form_label_colour' => get_theme_mod( 'lsx_login_form_label_colour', '#333333' ),
491
					'background_colour'       => get_theme_mod( 'lsx_login_bg_colour', '#f2f2f2' ),
492
					'background_image'        => get_theme_mod( 'lsx_login_bg_image', '' ),
493
					'background_repeat'       => get_theme_mod( 'lsx_login_bg_repeat', 'no-repeat' ),
494
					'background_size'         => get_theme_mod( 'lsx_login_bg_size', 'initial' ),
495
					'custom_css'              => get_theme_mod( 'lsx_login_custom_css', '' ),
496
				)
497
			);
498
			return $mods;
499
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 1 found
Loading history...
500
501
		/**
0 ignored issues
show
Coding Style Documentation introduced by
Doc comment for parameter "$theme_mods" missing
Loading history...
502
		 * Returns CSS.
503
		 *
504
		 * @since 1.0.0
505
		 */
506
		public function get_css( $theme_mods ) {
507
			$css = '<style>';
508
509
			$css .= "body.login #backtoblog a, body.login #nav a { color: {$theme_mods['link_colour']}; }";
510
			$css .= "body.login #nav a:hover, .login h1 a:hover, body.login #backtoblog a:hover { color: {$theme_mods['link_hover_colour']}; }";
511
			$css .= "body.login.wp-core-ui .button-primary { background-color: {$theme_mods['button_colour']}; }";
512
			$css .= "body.login.wp-core-ui .button-primary { border-color: {$theme_mods['button_colour']}; }";
513
			$css .= "body.login.wp-core-ui .button-primary:hover { background-color: {$theme_mods['button_hover_colour']}; }";
514
			$css .= "body.login.wp-core-ui .button-primary:hover { border-color: {$theme_mods['button_hover_colour']}; }";
515
			$css .= "body.login .button-primary { box-shadow: 0 1px 0 {$theme_mods['button_shadow_colour']}; }";
516
			$css .= "body.login .button-primary:active { box-shadow: 0 2px 0 {$theme_mods['button_shadow_colour']}; }";
517
			$css .= "body.login .button-primary { color: {$theme_mods['button_text_colour']} ; }";
518
			$css .= 'body.login .button-primary { text-shadow: none; }';
519
			$css .= "body.login form { background: {$theme_mods['login_form_colour']}; }";
520
			$css .= "body.login label { color: {$theme_mods['login_form_label_colour']}; }";
521
522
			if ( isset( $theme_mods['logo'] ) && '' !== $theme_mods['logo'] ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
523
				$css .= "
524
					#login h1 a, .login h1 a {
525
						background-image: url('" . $theme_mods['logo'] . "');
526
						max-height: 150px;
527
						width: 100%;
528
						background-size: contain;
529
						background-repeat: no-repeat;
530
					}
531
				";
532
			}
533
534
			// Add in the background image options.
535
			$background_image = '';
536
			if ( isset( $theme_mods['background_image'] ) && '' !== $theme_mods['background_image'] ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
537
				$background_image = "background-image:url('{$theme_mods['background_image']}');";
538
			}
0 ignored issues
show
Coding Style introduced by
No blank line found after control structure
Loading history...
539
			$background_repeat = '';
540
			if ( isset( $theme_mods['background_repeat'] ) && '' !== $theme_mods['background_repeat'] ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
541
				$background_repeat = "background-repeat:{$theme_mods['background_repeat']};";
542
			}
0 ignored issues
show
Coding Style introduced by
No blank line found after control structure
Loading history...
543
			$background_size = '';
544
			if ( isset( $theme_mods['background_size'] ) && '' !== $theme_mods['background_size'] ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
545
				$background_size = "background-size:{$theme_mods['background_size']};";
546
			}
0 ignored issues
show
Coding Style introduced by
No blank line found after control structure
Loading history...
547
			$css .= "
548
				.login {
549
					background:{$theme_mods['background_colour']};
550
					{$background_image}
551
					{$background_repeat}
552
					{$background_size}
553
				}
554
				.wp-core-ui .button-primary, body.login #backtoblog a, body.login #nav a  {
555
					transition:0.4s;
556
				}";
557
558
			// Add in the custom css
0 ignored issues
show
Coding Style introduced by
Inline comments must end in full-stops, exclamation marks, or question marks
Loading history...
559
			if ( isset( $theme_mods['custom_css'] ) && '' !== $theme_mods['custom_css'] ) {
0 ignored issues
show
Coding Style introduced by
Expected 0 spaces after opening bracket; 1 found
Loading history...
Coding Style introduced by
Expected 0 spaces before closing bracket; 1 found
Loading history...
560
				$css .= $theme_mods['custom_css'];
561
			}
562
563
			$css .= '</style>';
564
			$css  = apply_filters( 'lsx_customizer_login_styles', $css );
565
			return $css;
566
		}
0 ignored issues
show
Coding Style introduced by
Expected 1 blank line before closing function brace; 0 found
Loading history...
Coding Style introduced by
Expected 2 blank lines after function; 0 found
Loading history...
567
	}
568
	new LSX_Customizer_Login();
569
}
570