Passed
Push — master ( 57f146...5cac59 )
by Virginia
09:23
created
classes/class-lsx-customizer-colour.php 1 patch
Indentation   +479 added lines, -479 removed lines patch added patch discarded remove patch
@@ -1,407 +1,407 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! class_exists( 'LSX_Customizer_Colour' ) ) {
3 3
 
4
-	/**
5
-	 * LSX Customizer Colour Class
6
-	 *
7
-	 * @package   LSX Customizer
8
-	 * @author    LightSpeed
9
-	 * @license   GPL3
10
-	 * @link
11
-	 * @copyright 2016 LightSpeed
12
-	 */
13
-	class LSX_Customizer_Colour extends LSX_Customizer {
14
-
15
-		/**
16
-		 * Button customizer instance.
17
-		 *
18
-		 * @var string
19
-		 * @since 1.0.0
20
-		 */
21
-		public $button;
22
-
23
-		/**
24
-		 * Button CTA customizer instance.
25
-		 *
26
-		 * @var string
27
-		 * @since 1.0.0
28
-		 */
29
-		public $button_cta;
30
-
31
-		/**
32
-		 * Button secondary customizer instance.
33
-		 *
34
-		 * @var string
35
-		 * @since 1.1.0
36
-		 */
37
-		public $button_secondary;
38
-
39
-		/**
40
-		 * Button tertiary customizer instance.
41
-		 *
42
-		 * @var string
43
-		 * @since 1.1.0
44
-		 */
45
-		public $button_tertiary;
46
-
47
-		/**
48
-		 * Top Menu customizer instance.
49
-		 *
50
-		 * @var string
51
-		 * @since 1.0.0
52
-		 */
53
-		public $top_menu;
54
-
55
-		/**
56
-		 * Header customizer instance.
57
-		 *
58
-		 * @var string
59
-		 * @since 1.0.0
60
-		 */
61
-		public $header;
62
-
63
-		/**
64
-		 * Main menu customizer instance.
65
-		 *
66
-		 * @var string
67
-		 * @since 1.0.0
68
-		 */
69
-		public $main_menu;
70
-
71
-		/**
72
-		 * Banner customizer instance.
73
-		 *
74
-		 * @var string
75
-		 * @since 1.0.0
76
-		 */
77
-		public $banner;
78
-
79
-		/**
80
-		 * Body customizer instance.
81
-		 *
82
-		 * @var string
83
-		 * @since 1.0.0
84
-		 */
85
-		public $body;
86
-
87
-		/**
88
-		 * Footer CTA customizer instance.
89
-		 *
90
-		 * @var string
91
-		 * @since 1.0.0
92
-		 */
93
-		public $footer_cta;
94
-
95
-		/**
96
-		 * Footer Widgets customizer instance.
97
-		 *
98
-		 * @var string
99
-		 * @since 1.0.0
100
-		 */
101
-		public $footer_widgets;
102
-
103
-		/**
104
-		 * Footer customizer instance.
105
-		 *
106
-		 * @var string
107
-		 * @since 1.0.0
108
-		 */
109
-		public $footer;
110
-
111
-		/**
112
-		 * Constructor.
113
-		 *
114
-		 * @since 1.0.0
115
-		 */
116
-		public function __construct() {
117
-			add_action( 'after_setup_theme',                       array( $this, 'after_setup_theme' ), 20 );
118
-			add_action( 'customize_register',                      array( $this, 'customize_register' ), 20 );
119
-			add_action( 'customize_controls_print_footer_scripts', array( $this, 'colour_scheme_css_template' ) );
120
-		}
121
-
122
-		/**
123
-		 * Customizer Controls and Settings.
124
-		 *
125
-		 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
126
-		 * @since 1.0.0
127
-		 */
128
-		public function after_setup_theme() {
129
-			require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-colour-options.php' );
130
-			require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-colour-deprecated.php' );
131
-			require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-templates.php' );
132
-
133
-			if ( class_exists( 'WP_Customize_Control' ) ) {
134
-				require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-control.php' );
135
-			}
136
-
137
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button.php' );
138
-			$this->button = new LSX_Customizer_Colour_Button();
139
-
140
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-cta.php' );
141
-			$this->button_cta = new LSX_Customizer_Colour_Button_CTA();
142
-
143
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-secondary.php' );
144
-			$this->button_secondary = new LSX_Customizer_Colour_Button_Secondary();
145
-
146
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-tertiary.php' );
147
-			$this->button_tertiary = new LSX_Customizer_Colour_Button_Tertiary();
148
-
149
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-top-menu.php' );
150
-			$this->top_menu = new LSX_Customizer_Colour_Top_Menu();
151
-
152
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-header.php' );
153
-			$this->header = new LSX_Customizer_Colour_Header();
154
-
155
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-main-menu.php' );
156
-			$this->main_menu = new LSX_Customizer_Colour_Main_Menu();
157
-
158
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-banner.php' );
159
-			$this->banner = new LSX_Customizer_Colour_Banner();
160
-
161
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-body.php' );
162
-			$this->body = new LSX_Customizer_Colour_Body();
163
-
164
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer-cta.php' );
165
-			$this->footer_cta = new LSX_Customizer_Colour_Footer_CTA();
166
-
167
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer-widgets.php' );
168
-			$this->footer_widgets = new LSX_Customizer_Colour_Footer_Widgets();
169
-
170
-			require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer.php' );
171
-			$this->footer = new LSX_Customizer_Colour_Footer();
172
-		}
173
-
174
-		/**
175
-		 * Customizer Controls and Settings.
176
-		 *
177
-		 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
178
-		 * @since 1.0.0
179
-		 */
180
-		public function customize_register( $wp_customize ) {
181
-			global $customizer_colour_names;
182
-			global $customizer_colour_choices;
183
-
184
-			/**
185
-			 * Colors
186
-			 */
187
-			$wp_customize->add_panel( 'colors', array(
188
-				'title'             => esc_html__( 'Colors', 'lsx-customizer' ),
189
-				'priority'          => 60,
190
-			) );
191
-
192
-			/**
193
-			 * Colors - Sections
194
-			 */
195
-			$wp_customize->add_section( 'colors-core', array(
196
-				'title'             => esc_html__( 'Color Scheme', 'lsx-customizer' ),
197
-				'priority'          => 1,
198
-				'panel'             => 'colors',
199
-			) );
200
-
201
-			$wp_customize->add_section( 'colors-palette', array(
202
-				'title'             => esc_html__( 'Block Editor Color Palette', 'lsx-customizer' ),
203
-				'description' => esc_html__( 'Add colors to use within the Gutenberg editor color palette.', 'lsx-customizer' ),
204
-				'priority'          => 2,
205
-				'panel'             => 'colors',
206
-			) );
207
-
208
-			$wp_customize->add_section( 'colors-button', array(
209
-				'title'             => esc_html__( 'Button', 'lsx-customizer' ),
210
-				'priority'          => 3,
211
-				'panel'             => 'colors',
212
-			) );
213
-
214
-			$wp_customize->add_section( 'colors-button-cta', array(
215
-				'title'             => esc_html__( 'Button CTA', 'lsx-customizer' ),
216
-				'priority'          => 4,
217
-				'panel'             => 'colors',
218
-			) );
219
-
220
-			$wp_customize->add_section( 'colors-button-secondary', array(
221
-				'title'             => esc_html__( 'Button Secondary', 'lsx-customizer' ),
222
-				'priority'          => 5,
223
-				'panel'             => 'colors',
224
-			) );
225
-
226
-			$wp_customize->add_section( 'colors-button-tertiary', array(
227
-				'title'             => esc_html__( 'Button Tertiary', 'lsx-customizer' ),
228
-				'priority'          => 6,
229
-				'panel'             => 'colors',
230
-			) );
231
-
232
-			$wp_customize->add_section( 'colors-top-menu', array(
233
-				'title'             => esc_html__( 'Top Menu', 'lsx-customizer' ),
234
-				'priority'          => 7,
235
-				'panel'             => 'colors',
236
-			) );
237
-
238
-			$wp_customize->add_section( 'colors-header', array(
239
-				'title'             => esc_html__( 'Header', 'lsx-customizer' ),
240
-				'priority'          => 8,
241
-				'panel'             => 'colors',
242
-			) );
243
-
244
-			$wp_customize->add_section( 'colors-main-menu', array(
245
-				'title'             => esc_html__( 'Main Menu', 'lsx-customizer' ),
246
-				'priority'          => 9,
247
-				'panel'             => 'colors',
248
-			) );
249
-
250
-			$wp_customize->add_section( 'colors-banner', array(
251
-				'title'             => esc_html__( 'Banner', 'lsx-customizer' ),
252
-				'priority'          => 10,
253
-				'panel'             => 'colors',
254
-			) );
255
-
256
-			$wp_customize->add_section( 'colors-body', array(
257
-				'title'             => esc_html__( 'Body', 'lsx-customizer' ),
258
-				'priority'          => 11,
259
-				'panel'             => 'colors',
260
-			) );
261
-
262
-			$wp_customize->add_section( 'colors-footer-cta', array(
263
-				'title'             => esc_html__( 'Footer CTA', 'lsx-customizer' ),
264
-				'priority'          => 12,
265
-				'panel'             => 'colors',
266
-			) );
267
-
268
-			$wp_customize->add_section( 'colors-footer-widgets', array(
269
-				'title'             => esc_html__( 'Footer Widgets', 'lsx-customizer' ),
270
-				'priority'          => 13,
271
-				'panel'             => 'colors',
272
-			) );
273
-
274
-			$wp_customize->add_section( 'colors-footer', array(
275
-				'title'             => esc_html__( 'Footer', 'lsx-customizer' ),
276
-				'priority'          => 14,
277
-				'panel'             => 'colors',
278
-			) );
279
-
280
-			/**
281
-			 * Color Scheme
282
-			 */
283
-			$wp_customize->add_setting( 'color_scheme', array(
284
-				'default'           => 'default',
285
-				'type'              => 'theme_mod',
286
-				'transport'         => 'postMessage',
287
-			) );
288
-
289
-			$wp_customize->add_control( new LSX_Customizer_Colour_Control(
290
-				$wp_customize, 'color_scheme', array(
291
-					'label'             => esc_html__( 'Base Color Scheme', 'lsx-customizer' ),
292
-					'section'           => 'colors-core',
293
-					'type'              => 'select',
294
-					'priority'          => 1,
295
-					'choices'           => $customizer_colour_choices,
296
-				)
297
-			) );
298
-
299
-			/**
300
-			 * Color Palette
301
-			 */
302
-			$colors = $this->get_color_scheme();
303
-
304
-			$customizer_colour_defaults = array(
305
-				__( 'Primary Color', 'lsx-customizer' )   => get_theme_mod( 'button_background_color', $colors['button_background_color'] ),
306
-				__( 'Strong Primary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_background_hover_color', $colors['button_background_hover_color'] ),
307
-				__( 'Call To Action Color', 'lsx-customizer' ) => get_theme_mod( 'button_cta_background_color', $colors['button_cta_background_color'] ),
308
-				__( 'Strong CTA Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_cta_shadow', $colors['button_cta_shadow'] ),
309
-				__( 'Secondary Color', 'lsx-customizer' ) => get_theme_mod( 'button_secondary_background_color', $colors['button_secondary_background_color'] ),
310
-				__( 'Strong Secondary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_secondary_shadow', $colors['button_secondary_shadow'] ),
311
-				__( 'Tertiary Color', 'lsx-customizer' )  => get_theme_mod( 'button_tertiary_background_color', $colors['button_tertiary_background_color'] ),
312
-				__( 'Strong Tertiary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_tertiary_shadow', $colors['button_tertiary_shadow'] ),
313
-			);
314
-			foreach ( $customizer_colour_defaults as $key => $value ) {
315
-
316
-				$color_name = strtolower( str_replace( ' ', '_', $key ) );
317
-				$color_name = $color_name;
318
-
319
-				$wp_customize->add_setting( $color_name, array(
320
-					'default'           => $value,
321
-					'type'              => 'theme_mod',
322
-					'transport'         => 'postMessage',
323
-					'sanitize_callback' => 'sanitize_hex_color',
324
-				) );
325
-				$wp_customize->add_control(
326
-					new WP_Customize_Color_Control(
327
-						$wp_customize,
328
-						$color_name,
329
-						array(
330
-							'label'    => $key,
331
-							'section'  => 'colors-palette',
332
-							'settings' => $color_name,
333
-						)
334
-					)
335
-				);
336
-			}
337
-
338
-			/**
339
-			 * Colors
340
-			 */
341
-			foreach ( $customizer_colour_names as $key => $value ) {
342
-				$sanitize_callback = 'sanitize_hex_color';
343
-
344
-				if ( 'background_color' === $key ) {
345
-					$sanitize_callback = 'sanitize_hex_color_no_hash';
346
-				}
347
-
348
-				$section = 'colors-core';
349
-
350
-				if ( preg_match( '/^button_cta_.*/', $key ) ) {
351
-					$section = 'colors-button-cta';
352
-				} elseif ( preg_match( '/^button_secondary_.*/', $key ) ) {
353
-					$section = 'colors-button-secondary';
354
-				} elseif ( preg_match( '/^button_tertiary_.*/', $key ) ) {
355
-					$section = 'colors-button-tertiary';
356
-				} elseif ( preg_match( '/^button_.*/', $key ) ) {
357
-					$section = 'colors-button';
358
-				} elseif ( preg_match( '/^top_menu_.*/', $key ) ) {
359
-					$section = 'colors-top-menu';
360
-				} elseif ( preg_match( '/^header_.*/', $key ) ) {
361
-					$section = 'colors-header';
362
-				} elseif ( preg_match( '/^main_menu_.*/', $key ) ) {
363
-					$section = 'colors-main-menu';
364
-				} elseif ( preg_match( '/^banner_.*/', $key ) ) {
365
-					$section = 'colors-banner';
366
-				} elseif ( preg_match( '/^body_.*/', $key ) || 'background_color' === $key ) {
367
-					$section = 'colors-body';
368
-				} elseif ( preg_match( '/^footer_cta_.*/', $key ) ) {
369
-					$section = 'colors-footer-cta';
370
-				} elseif ( preg_match( '/^footer_widgets_.*/', $key ) ) {
371
-					$section = 'colors-footer-widgets';
372
-				} elseif ( preg_match( '/^footer_.*/', $key ) ) {
373
-					$section = 'colors-footer';
374
-				}
375
-
376
-				$wp_customize->add_setting( $key, array(
377
-					'default'           => $customizer_colour_choices['default']['colors'][ $key ],
378
-					'type'              => 'theme_mod',
379
-					'transport'         => 'postMessage',
380
-					'sanitize_callback' => $sanitize_callback,
381
-				) );
382
-
383
-				$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, $key, array(
384
-					'label'             => $value,
385
-					'section'           => $section,
386
-					'settings'          => $key,
387
-				) ) );
388
-			}
389
-		}
390
-
391
-		/**
392
-		 * Outputs an Underscore template for generating CSS for the color scheme.
393
-		 *
394
-		 * @since 1.0.0
395
-		 */
396
-		public function colour_scheme_css_template() {
397
-			global $customizer_colour_names;
398
-
399
-			$colors = array();
400
-
401
-			foreach ( $customizer_colour_names as $key => $value ) {
402
-				$colors[ $key ] = 'unquote("{{ data.' . $key . ' }}")';
403
-			}
404
-			?>
4
+     /**
5
+      * LSX Customizer Colour Class
6
+      *
7
+      * @package   LSX Customizer
8
+      * @author    LightSpeed
9
+      * @license   GPL3
10
+      * @link
11
+      * @copyright 2016 LightSpeed
12
+      */
13
+     class LSX_Customizer_Colour extends LSX_Customizer {
14
+
15
+          /**
16
+           * Button customizer instance.
17
+           *
18
+           * @var string
19
+           * @since 1.0.0
20
+           */
21
+          public $button;
22
+
23
+          /**
24
+           * Button CTA customizer instance.
25
+           *
26
+           * @var string
27
+           * @since 1.0.0
28
+           */
29
+          public $button_cta;
30
+
31
+          /**
32
+           * Button secondary customizer instance.
33
+           *
34
+           * @var string
35
+           * @since 1.1.0
36
+           */
37
+          public $button_secondary;
38
+
39
+          /**
40
+           * Button tertiary customizer instance.
41
+           *
42
+           * @var string
43
+           * @since 1.1.0
44
+           */
45
+          public $button_tertiary;
46
+
47
+          /**
48
+           * Top Menu customizer instance.
49
+           *
50
+           * @var string
51
+           * @since 1.0.0
52
+           */
53
+          public $top_menu;
54
+
55
+          /**
56
+           * Header customizer instance.
57
+           *
58
+           * @var string
59
+           * @since 1.0.0
60
+           */
61
+          public $header;
62
+
63
+          /**
64
+           * Main menu customizer instance.
65
+           *
66
+           * @var string
67
+           * @since 1.0.0
68
+           */
69
+          public $main_menu;
70
+
71
+          /**
72
+           * Banner customizer instance.
73
+           *
74
+           * @var string
75
+           * @since 1.0.0
76
+           */
77
+          public $banner;
78
+
79
+          /**
80
+           * Body customizer instance.
81
+           *
82
+           * @var string
83
+           * @since 1.0.0
84
+           */
85
+          public $body;
86
+
87
+          /**
88
+           * Footer CTA customizer instance.
89
+           *
90
+           * @var string
91
+           * @since 1.0.0
92
+           */
93
+          public $footer_cta;
94
+
95
+          /**
96
+           * Footer Widgets customizer instance.
97
+           *
98
+           * @var string
99
+           * @since 1.0.0
100
+           */
101
+          public $footer_widgets;
102
+
103
+          /**
104
+           * Footer customizer instance.
105
+           *
106
+           * @var string
107
+           * @since 1.0.0
108
+           */
109
+          public $footer;
110
+
111
+          /**
112
+           * Constructor.
113
+           *
114
+           * @since 1.0.0
115
+           */
116
+          public function __construct() {
117
+               add_action( 'after_setup_theme',                       array( $this, 'after_setup_theme' ), 20 );
118
+               add_action( 'customize_register',                      array( $this, 'customize_register' ), 20 );
119
+               add_action( 'customize_controls_print_footer_scripts', array( $this, 'colour_scheme_css_template' ) );
120
+          }
121
+
122
+          /**
123
+           * Customizer Controls and Settings.
124
+           *
125
+           * @param WP_Customize_Manager $wp_customize Theme Customizer object.
126
+           * @since 1.0.0
127
+           */
128
+          public function after_setup_theme() {
129
+               require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-colour-options.php' );
130
+               require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-colour-deprecated.php' );
131
+               require_once( LSX_CUSTOMIZER_PATH . 'includes/lsx-customizer-templates.php' );
132
+
133
+               if ( class_exists( 'WP_Customize_Control' ) ) {
134
+                    require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-control.php' );
135
+               }
136
+
137
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button.php' );
138
+               $this->button = new LSX_Customizer_Colour_Button();
139
+
140
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-cta.php' );
141
+               $this->button_cta = new LSX_Customizer_Colour_Button_CTA();
142
+
143
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-secondary.php' );
144
+               $this->button_secondary = new LSX_Customizer_Colour_Button_Secondary();
145
+
146
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-button-tertiary.php' );
147
+               $this->button_tertiary = new LSX_Customizer_Colour_Button_Tertiary();
148
+
149
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-top-menu.php' );
150
+               $this->top_menu = new LSX_Customizer_Colour_Top_Menu();
151
+
152
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-header.php' );
153
+               $this->header = new LSX_Customizer_Colour_Header();
154
+
155
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-main-menu.php' );
156
+               $this->main_menu = new LSX_Customizer_Colour_Main_Menu();
157
+
158
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-banner.php' );
159
+               $this->banner = new LSX_Customizer_Colour_Banner();
160
+
161
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-body.php' );
162
+               $this->body = new LSX_Customizer_Colour_Body();
163
+
164
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer-cta.php' );
165
+               $this->footer_cta = new LSX_Customizer_Colour_Footer_CTA();
166
+
167
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer-widgets.php' );
168
+               $this->footer_widgets = new LSX_Customizer_Colour_Footer_Widgets();
169
+
170
+               require_once( LSX_CUSTOMIZER_PATH . 'classes/class-lsx-customizer-colour-footer.php' );
171
+               $this->footer = new LSX_Customizer_Colour_Footer();
172
+          }
173
+
174
+          /**
175
+           * Customizer Controls and Settings.
176
+           *
177
+           * @param WP_Customize_Manager $wp_customize Theme Customizer object.
178
+           * @since 1.0.0
179
+           */
180
+          public function customize_register( $wp_customize ) {
181
+               global $customizer_colour_names;
182
+               global $customizer_colour_choices;
183
+
184
+               /**
185
+                * Colors
186
+                */
187
+               $wp_customize->add_panel( 'colors', array(
188
+                    'title'             => esc_html__( 'Colors', 'lsx-customizer' ),
189
+                    'priority'          => 60,
190
+               ) );
191
+
192
+               /**
193
+                * Colors - Sections
194
+                */
195
+               $wp_customize->add_section( 'colors-core', array(
196
+                    'title'             => esc_html__( 'Color Scheme', 'lsx-customizer' ),
197
+                    'priority'          => 1,
198
+                    'panel'             => 'colors',
199
+               ) );
200
+
201
+               $wp_customize->add_section( 'colors-palette', array(
202
+                    'title'             => esc_html__( 'Block Editor Color Palette', 'lsx-customizer' ),
203
+                    'description' => esc_html__( 'Add colors to use within the Gutenberg editor color palette.', 'lsx-customizer' ),
204
+                    'priority'          => 2,
205
+                    'panel'             => 'colors',
206
+               ) );
207
+
208
+               $wp_customize->add_section( 'colors-button', array(
209
+                    'title'             => esc_html__( 'Button', 'lsx-customizer' ),
210
+                    'priority'          => 3,
211
+                    'panel'             => 'colors',
212
+               ) );
213
+
214
+               $wp_customize->add_section( 'colors-button-cta', array(
215
+                    'title'             => esc_html__( 'Button CTA', 'lsx-customizer' ),
216
+                    'priority'          => 4,
217
+                    'panel'             => 'colors',
218
+               ) );
219
+
220
+               $wp_customize->add_section( 'colors-button-secondary', array(
221
+                    'title'             => esc_html__( 'Button Secondary', 'lsx-customizer' ),
222
+                    'priority'          => 5,
223
+                    'panel'             => 'colors',
224
+               ) );
225
+
226
+               $wp_customize->add_section( 'colors-button-tertiary', array(
227
+                    'title'             => esc_html__( 'Button Tertiary', 'lsx-customizer' ),
228
+                    'priority'          => 6,
229
+                    'panel'             => 'colors',
230
+               ) );
231
+
232
+               $wp_customize->add_section( 'colors-top-menu', array(
233
+                    'title'             => esc_html__( 'Top Menu', 'lsx-customizer' ),
234
+                    'priority'          => 7,
235
+                    'panel'             => 'colors',
236
+               ) );
237
+
238
+               $wp_customize->add_section( 'colors-header', array(
239
+                    'title'             => esc_html__( 'Header', 'lsx-customizer' ),
240
+                    'priority'          => 8,
241
+                    'panel'             => 'colors',
242
+               ) );
243
+
244
+               $wp_customize->add_section( 'colors-main-menu', array(
245
+                    'title'             => esc_html__( 'Main Menu', 'lsx-customizer' ),
246
+                    'priority'          => 9,
247
+                    'panel'             => 'colors',
248
+               ) );
249
+
250
+               $wp_customize->add_section( 'colors-banner', array(
251
+                    'title'             => esc_html__( 'Banner', 'lsx-customizer' ),
252
+                    'priority'          => 10,
253
+                    'panel'             => 'colors',
254
+               ) );
255
+
256
+               $wp_customize->add_section( 'colors-body', array(
257
+                    'title'             => esc_html__( 'Body', 'lsx-customizer' ),
258
+                    'priority'          => 11,
259
+                    'panel'             => 'colors',
260
+               ) );
261
+
262
+               $wp_customize->add_section( 'colors-footer-cta', array(
263
+                    'title'             => esc_html__( 'Footer CTA', 'lsx-customizer' ),
264
+                    'priority'          => 12,
265
+                    'panel'             => 'colors',
266
+               ) );
267
+
268
+               $wp_customize->add_section( 'colors-footer-widgets', array(
269
+                    'title'             => esc_html__( 'Footer Widgets', 'lsx-customizer' ),
270
+                    'priority'          => 13,
271
+                    'panel'             => 'colors',
272
+               ) );
273
+
274
+               $wp_customize->add_section( 'colors-footer', array(
275
+                    'title'             => esc_html__( 'Footer', 'lsx-customizer' ),
276
+                    'priority'          => 14,
277
+                    'panel'             => 'colors',
278
+               ) );
279
+
280
+               /**
281
+                * Color Scheme
282
+                */
283
+               $wp_customize->add_setting( 'color_scheme', array(
284
+                    'default'           => 'default',
285
+                    'type'              => 'theme_mod',
286
+                    'transport'         => 'postMessage',
287
+               ) );
288
+
289
+               $wp_customize->add_control( new LSX_Customizer_Colour_Control(
290
+                    $wp_customize, 'color_scheme', array(
291
+                         'label'             => esc_html__( 'Base Color Scheme', 'lsx-customizer' ),
292
+                         'section'           => 'colors-core',
293
+                         'type'              => 'select',
294
+                         'priority'          => 1,
295
+                         'choices'           => $customizer_colour_choices,
296
+                    )
297
+               ) );
298
+
299
+               /**
300
+                * Color Palette
301
+                */
302
+               $colors = $this->get_color_scheme();
303
+
304
+               $customizer_colour_defaults = array(
305
+                    __( 'Primary Color', 'lsx-customizer' )   => get_theme_mod( 'button_background_color', $colors['button_background_color'] ),
306
+                    __( 'Strong Primary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_background_hover_color', $colors['button_background_hover_color'] ),
307
+                    __( 'Call To Action Color', 'lsx-customizer' ) => get_theme_mod( 'button_cta_background_color', $colors['button_cta_background_color'] ),
308
+                    __( 'Strong CTA Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_cta_shadow', $colors['button_cta_shadow'] ),
309
+                    __( 'Secondary Color', 'lsx-customizer' ) => get_theme_mod( 'button_secondary_background_color', $colors['button_secondary_background_color'] ),
310
+                    __( 'Strong Secondary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_secondary_shadow', $colors['button_secondary_shadow'] ),
311
+                    __( 'Tertiary Color', 'lsx-customizer' )  => get_theme_mod( 'button_tertiary_background_color', $colors['button_tertiary_background_color'] ),
312
+                    __( 'Strong Tertiary Color', 'lsx-button_shadow' ) => get_theme_mod( 'button_tertiary_shadow', $colors['button_tertiary_shadow'] ),
313
+               );
314
+               foreach ( $customizer_colour_defaults as $key => $value ) {
315
+
316
+                    $color_name = strtolower( str_replace( ' ', '_', $key ) );
317
+                    $color_name = $color_name;
318
+
319
+                    $wp_customize->add_setting( $color_name, array(
320
+                         'default'           => $value,
321
+                         'type'              => 'theme_mod',
322
+                         'transport'         => 'postMessage',
323
+                         'sanitize_callback' => 'sanitize_hex_color',
324
+                    ) );
325
+                    $wp_customize->add_control(
326
+                         new WP_Customize_Color_Control(
327
+                              $wp_customize,
328
+                              $color_name,
329
+                              array(
330
+                                   'label'    => $key,
331
+                                   'section'  => 'colors-palette',
332
+                                   'settings' => $color_name,
333
+                              )
334
+                         )
335
+                    );
336
+               }
337
+
338
+               /**
339
+                * Colors
340
+                */
341
+               foreach ( $customizer_colour_names as $key => $value ) {
342
+                    $sanitize_callback = 'sanitize_hex_color';
343
+
344
+                    if ( 'background_color' === $key ) {
345
+                         $sanitize_callback = 'sanitize_hex_color_no_hash';
346
+                    }
347
+
348
+                    $section = 'colors-core';
349
+
350
+                    if ( preg_match( '/^button_cta_.*/', $key ) ) {
351
+                         $section = 'colors-button-cta';
352
+                    } elseif ( preg_match( '/^button_secondary_.*/', $key ) ) {
353
+                         $section = 'colors-button-secondary';
354
+                    } elseif ( preg_match( '/^button_tertiary_.*/', $key ) ) {
355
+                         $section = 'colors-button-tertiary';
356
+                    } elseif ( preg_match( '/^button_.*/', $key ) ) {
357
+                         $section = 'colors-button';
358
+                    } elseif ( preg_match( '/^top_menu_.*/', $key ) ) {
359
+                         $section = 'colors-top-menu';
360
+                    } elseif ( preg_match( '/^header_.*/', $key ) ) {
361
+                         $section = 'colors-header';
362
+                    } elseif ( preg_match( '/^main_menu_.*/', $key ) ) {
363
+                         $section = 'colors-main-menu';
364
+                    } elseif ( preg_match( '/^banner_.*/', $key ) ) {
365
+                         $section = 'colors-banner';
366
+                    } elseif ( preg_match( '/^body_.*/', $key ) || 'background_color' === $key ) {
367
+                         $section = 'colors-body';
368
+                    } elseif ( preg_match( '/^footer_cta_.*/', $key ) ) {
369
+                         $section = 'colors-footer-cta';
370
+                    } elseif ( preg_match( '/^footer_widgets_.*/', $key ) ) {
371
+                         $section = 'colors-footer-widgets';
372
+                    } elseif ( preg_match( '/^footer_.*/', $key ) ) {
373
+                         $section = 'colors-footer';
374
+                    }
375
+
376
+                    $wp_customize->add_setting( $key, array(
377
+                         'default'           => $customizer_colour_choices['default']['colors'][ $key ],
378
+                         'type'              => 'theme_mod',
379
+                         'transport'         => 'postMessage',
380
+                         'sanitize_callback' => $sanitize_callback,
381
+                    ) );
382
+
383
+                    $wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, $key, array(
384
+                         'label'             => $value,
385
+                         'section'           => $section,
386
+                         'settings'          => $key,
387
+                    ) ) );
388
+               }
389
+          }
390
+
391
+          /**
392
+           * Outputs an Underscore template for generating CSS for the color scheme.
393
+           *
394
+           * @since 1.0.0
395
+           */
396
+          public function colour_scheme_css_template() {
397
+               global $customizer_colour_names;
398
+
399
+               $colors = array();
400
+
401
+               foreach ( $customizer_colour_names as $key => $value ) {
402
+                    $colors[ $key ] = 'unquote("{{ data.' . $key . ' }}")';
403
+               }
404
+               ?>
405 405
 			<script type="text/html" id="tmpl-lsx-color-scheme">
406 406
 				<?php echo esc_attr( $this->top_menu->get_css( $colors ) ); ?>
407 407
 				<?php echo esc_attr( $this->header->get_css( $colors ) ); ?>
@@ -420,89 +420,89 @@  discard block
 block discarded – undo
420 420
 				<?php echo esc_attr( $this->button_tertiary->get_css( $colors ) ); ?>
421 421
 			</script>
422 422
 			<?php
423
-		}
424
-
425
-		/**
426
-		 * Transform SCSS to CSS.
427
-		 *
428
-		 * @since 1.0.0
429
-		 */
430
-		public function scss_to_css( $scss ) {
431
-			$css                 = '';
432
-			$scss_php_file       = LSX_CUSTOMIZER_PATH . 'vendor/leafo/scssphp/scss.inc.php';
433
-			$lsx_theme_sass_file = get_template_directory() . '/assets/css/scss/lsx.scss';
434
-
435
-			if ( ! empty( $scss ) && file_exists( $scss_php_file ) && file_exists( $lsx_theme_sass_file ) ) {
436
-				require_once $scss_php_file;
437
-
438
-				$compiler = new \Leafo\ScssPhp\Compiler();
439
-				$compiler->setFormatter( 'Leafo\ScssPhp\Formatter\Compact' );
440
-
441
-				try {
442
-					$scss = '
423
+          }
424
+
425
+          /**
426
+           * Transform SCSS to CSS.
427
+           *
428
+           * @since 1.0.0
429
+           */
430
+          public function scss_to_css( $scss ) {
431
+               $css                 = '';
432
+               $scss_php_file       = LSX_CUSTOMIZER_PATH . 'vendor/leafo/scssphp/scss.inc.php';
433
+               $lsx_theme_sass_file = get_template_directory() . '/assets/css/scss/lsx.scss';
434
+
435
+               if ( ! empty( $scss ) && file_exists( $scss_php_file ) && file_exists( $lsx_theme_sass_file ) ) {
436
+                    require_once $scss_php_file;
437
+
438
+                    $compiler = new \Leafo\ScssPhp\Compiler();
439
+                    $compiler->setFormatter( 'Leafo\ScssPhp\Formatter\Compact' );
440
+
441
+                    try {
442
+                         $scss = '
443 443
 						@import "' . LSX_CUSTOMIZER_PATH . '/assets/css/scss/include-media";
444 444
 						@import "' . get_template_directory() . '/assets/css/scss/global/lsx-variables";
445 445
 						@import "' . get_template_directory() . '/assets/css/scss/global/mixins/colours-helper";
446 446
 						' . $scss . '
447 447
 					';
448 448
 
449
-					$css = $compiler->compile( $scss );
450
-				} catch ( \Exception $e ) {
451
-					$error = $e->getMessage();
452
-					return "/*\n\n\$error:\n\n{$error}\n\n\$scss:\n\n{$scss} */";
453
-				}
454
-			}
455
-
456
-			return $css;
457
-		}
458
-
459
-		/**
460
-		 * Converts a HEX value to RGB.
461
-		 *
462
-		 * @since 1.0.0
463
-		 */
464
-		public static function hex2rgb( $color ) {
465
-			$color = trim( $color, '#' );
466
-
467
-			if ( strlen( $color ) === 3 ) {
468
-				$r = hexdec( substr( $color, 0, 1 ) . substr( $color, 0, 1 ) );
469
-				$g = hexdec( substr( $color, 1, 1 ) . substr( $color, 1, 1 ) );
470
-				$b = hexdec( substr( $color, 2, 1 ) . substr( $color, 2, 1 ) );
471
-			} elseif ( strlen( $color ) === 6 ) {
472
-				$r = hexdec( substr( $color, 0, 2 ) );
473
-				$g = hexdec( substr( $color, 2, 2 ) );
474
-				$b = hexdec( substr( $color, 4, 2 ) );
475
-			} else {
476
-				return array();
477
-			}
478
-
479
-			return array(
480
-				'red'   => $r,
481
-				'green' => $g,
482
-				'blue'  => $b,
483
-			);
484
-		}
485
-
486
-		/**
487
-		 * Retrieves the current color scheme.
488
-		 *
489
-		 * @since 1.0.0
490
-		 */
491
-		public function get_color_scheme() {
492
-			global $customizer_colour_choices;
493
-
494
-			$color_scheme_option = get_theme_mod( 'color_scheme', 'default' );
495
-			$color_schemes = $customizer_colour_choices;
496
-
497
-			if ( array_key_exists( $color_scheme_option, $color_schemes ) ) {
498
-				return $color_schemes[ $color_scheme_option ]['colors'];
499
-			}
500
-
501
-			return $color_schemes['default']['colors'];
502
-		}
503
-
504
-	}
505
-
506
-	new LSX_Customizer_Colour();
449
+                         $css = $compiler->compile( $scss );
450
+                    } catch ( \Exception $e ) {
451
+                         $error = $e->getMessage();
452
+                         return "/*\n\n\$error:\n\n{$error}\n\n\$scss:\n\n{$scss} */";
453
+                    }
454
+               }
455
+
456
+               return $css;
457
+          }
458
+
459
+          /**
460
+           * Converts a HEX value to RGB.
461
+           *
462
+           * @since 1.0.0
463
+           */
464
+          public static function hex2rgb( $color ) {
465
+               $color = trim( $color, '#' );
466
+
467
+               if ( strlen( $color ) === 3 ) {
468
+                    $r = hexdec( substr( $color, 0, 1 ) . substr( $color, 0, 1 ) );
469
+                    $g = hexdec( substr( $color, 1, 1 ) . substr( $color, 1, 1 ) );
470
+                    $b = hexdec( substr( $color, 2, 1 ) . substr( $color, 2, 1 ) );
471
+               } elseif ( strlen( $color ) === 6 ) {
472
+                    $r = hexdec( substr( $color, 0, 2 ) );
473
+                    $g = hexdec( substr( $color, 2, 2 ) );
474
+                    $b = hexdec( substr( $color, 4, 2 ) );
475
+               } else {
476
+                    return array();
477
+               }
478
+
479
+               return array(
480
+                    'red'   => $r,
481
+                    'green' => $g,
482
+                    'blue'  => $b,
483
+               );
484
+          }
485
+
486
+          /**
487
+           * Retrieves the current color scheme.
488
+           *
489
+           * @since 1.0.0
490
+           */
491
+          public function get_color_scheme() {
492
+               global $customizer_colour_choices;
493
+
494
+               $color_scheme_option = get_theme_mod( 'color_scheme', 'default' );
495
+               $color_schemes = $customizer_colour_choices;
496
+
497
+               if ( array_key_exists( $color_scheme_option, $color_schemes ) ) {
498
+                    return $color_schemes[ $color_scheme_option ]['colors'];
499
+               }
500
+
501
+               return $color_schemes['default']['colors'];
502
+          }
503
+
504
+     }
505
+
506
+     new LSX_Customizer_Colour();
507 507
 
508 508
 }
Please login to merge, or discard this patch.