Completed
Branch dev (0b2b90)
by Eric
01:41
created

()   A

Complexity

Conditions 2

Size

Total Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
dl 0
loc 12
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * bitsy Theme Customizer.
4
 *
5
 * @package bitsy
6
 */
7
8
/**
9
 * Add postMessage support for site title and description for the Theme Customizer.
10
 *
11
 * @param WP_Customize_Manager $wp_customize Theme Customizer object.
12
 */
13
if ( ! function_exists( 'bitsy_customize_register' ) ) {
14
	/**
15
	 * Register basic customizer support.
16
	 *
17
	 * @param object $wp_customize Customizer reference.
18
	 */
19
	function bitsy_customize_register( $wp_customize ) {
20
		$wp_customize->get_setting( 'blogname' )->transport         = 'postMessage';
21
		$wp_customize->get_setting( 'blogdescription' )->transport  = 'postMessage';
22
		$wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage';
23
	}
24
}
25
add_action( 'customize_register', 'bitsy_customize_register' );
26
27
if ( ! function_exists( 'bitsy_theme_customize_register' ) ) {
28
	/**
29
	 * Register individual settings through customizer's API.
30
	 *
31
	 * @param WP_Customize_Manager $wp_customize Customizer reference.
32
	 */
33
	function bitsy_theme_customize_register( $wp_customize ) {
34
35
		// Theme layout settings.
36
		$wp_customize->add_section( 'bitsy_theme_layout_options', array(
37
			'title'       => __( 'Theme Layout Settings', 'spurs' ),
38
			'capability'  => 'edit_theme_options',
39
			'description' => __( 'Container width and sidebar defaults', 'spurs' ),
40
			'priority'    => 160,
41
		) );
42
43
		//select sanitization function
44
		function bitsy_theme_slug_sanitize_select( $input, $setting ) {
0 ignored issues
show
Documentation introduced by
The return type could not be reliably inferred; please add a @return annotation.

Our type inference engine in quite powerful, but sometimes the code does not provide enough clues to go by. In these cases we request you to add a @return annotation as described here.

Loading history...
45
46
			//input must be a slug: lowercase alphanumeric characters, dashes and underscores are allowed only
47
			$input = sanitize_key( $input );
0 ignored issues
show
Coding Style introduced by
Consider using a different name than the parameter $input. This often makes code more readable.
Loading history...
48
49
			//get the list of possible select options
50
			$choices = $setting->manager->get_control( $setting->id )->choices;
51
52
			//return input if valid or return default option
53
			return ( array_key_exists( $input, $choices ) ? $input : $setting->default );
54
55
		}
56
57
		$wp_customize->add_setting( 'bitsy_container_type', array(
58
			'default'           => 'container',
59
			'type'              => 'theme_mod',
60
			'sanitize_callback' => 'bitsy_theme_slug_sanitize_select',
61
			'capability'        => 'edit_theme_options',
62
		) );
63
64
		$wp_customize->add_control(
65
			new WP_Customize_Control(
66
				$wp_customize,
67
				'bitsy_container_type', array(
68
					'label'       => __( 'Container Width', 'spurs' ),
69
					'description' => __( "Use Bootstrap fixed or fluid container?", 'spurs' ),
0 ignored issues
show
Coding Style Comprehensibility introduced by
The string literal Use Bootstrap fixed or fluid container? does not require double quotes, as per coding-style, please use single quotes.

PHP provides two ways to mark string literals. Either with single quotes 'literal' or with double quotes "literal". The difference between these is that string literals in double quotes may contain variables with are evaluated at run-time as well as escape sequences.

String literals in single quotes on the other hand are evaluated very literally and the only two characters that needs escaping in the literal are the single quote itself (\') and the backslash (\\). Every other character is displayed as is.

Double quoted string literals may contain other variables or more complex escape sequences.

<?php

$singleQuoted = 'Value';
$doubleQuoted = "\tSingle is $singleQuoted";

print $doubleQuoted;

will print an indented: Single is Value

If your string literal does not contain variables or escape sequences, it should be defined using single quotes to make that fact clear.

For more information on PHP string literals and available escape sequences see the PHP core documentation.

Loading history...
70
					'section'     => 'bitsy_theme_layout_options',
71
					'settings'    => 'bitsy_container_type',
72
					'type'        => 'select',
73
					'choices'     => array(
74
						'container'       => __( 'Fixed-width container', 'spurs' ),
75
						'container-fluid' => __( 'Full-width container', 'spurs' ),
76
					),
77
					'priority'    => '10',
78
				)
79
			) );
0 ignored issues
show
Coding Style introduced by
This line of the multi-line function call does not seem to be indented correctly. Expected 8 spaces, but found 12.
Loading history...
80
81
		$wp_customize->add_setting( 'bitsy_sidebar_position', array(
82
			'default'           => 'right',
83
			'type'              => 'theme_mod',
84
			'sanitize_callback' => 'sanitize_text_field',
85
			'capability'        => 'edit_theme_options',
86
		) );
87
88
		$wp_customize->add_control(
89
			new WP_Customize_Control(
90
				$wp_customize,
91
				'bitsy_sidebar_position', array(
92
					'label'             => __( 'Default Sidebar Position', 'spurs' ),
93
					'description'       => __( "<b>Applies to all pages and posts.</b> <br />
0 ignored issues
show
Coding Style Comprehensibility introduced by
The string literal <b>Applies to all pages ...de on individual pages. does not require double quotes, as per coding-style, please use single quotes.

PHP provides two ways to mark string literals. Either with single quotes 'literal' or with double quotes "literal". The difference between these is that string literals in double quotes may contain variables with are evaluated at run-time as well as escape sequences.

String literals in single quotes on the other hand are evaluated very literally and the only two characters that needs escaping in the literal are the single quote itself (\') and the backslash (\\). Every other character is displayed as is.

Double quoted string literals may contain other variables or more complex escape sequences.

<?php

$singleQuoted = 'Value';
$doubleQuoted = "\tSingle is $singleQuoted";

print $doubleQuoted;

will print an indented: Single is Value

If your string literal does not contain variables or escape sequences, it should be defined using single quotes to make that fact clear.

For more information on PHP string literals and available escape sequences see the PHP core documentation.

Loading history...
94
												<b>Select:</b> right, left, both, or none. <br />
95
												<b>Note:</b> you can override on individual pages.",
96
						'spurs' ),
0 ignored issues
show
Coding Style introduced by
This line of the multi-line function call does not seem to be indented correctly. Expected 20 spaces, but found 24.
Loading history...
97
					'section'           => 'bitsy_theme_layout_options',
98
					'settings'          => 'bitsy_sidebar_position',
99
					'type'              => 'select',
100
					'sanitize_callback' => 'bitsy_theme_slug_sanitize_select',
101
					'choices'           => array(
102
						'right' => __( 'Right sidebar', 'spurs' ),
103
						'left'  => __( 'Left sidebar', 'spurs' ),
104
						'both'  => __( 'Left & Right sidebars', 'spurs' ),
105
						'none'  => __( 'No sidebar', 'spurs' ),
106
					),
107
					'priority'          => '20',
108
				)
109
			) );
0 ignored issues
show
Coding Style introduced by
This line of the multi-line function call does not seem to be indented correctly. Expected 8 spaces, but found 12.
Loading history...
110
	}
111
} // endif function_exists( 'bitsy_theme_customize_register' ).
112
add_action( 'customize_register', 'bitsy_theme_customize_register' );
113
114
/**
115
 * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
116
 */
117
if ( ! function_exists( 'bitsy_customize_preview_js' ) ) {
118
	/**
119
	 * Setup JS integration for live previewing.
120
	 */
121
	function bitsy_customize_preview_js() {
122
		wp_enqueue_script( 'bitsy_customizer', get_template_directory_uri() . '/js/customizer.js',
123
			array( 'customize-preview' ), '20130508', true );
0 ignored issues
show
Coding Style introduced by
This line of the multi-line function call does not seem to be indented correctly. Expected 8 spaces, but found 12.
Loading history...
124
	}
125
}
126
add_action( 'customize_preview_init', 'bitsy_customize_preview_js' );