diff --git a/wp-content/themes/twentyeleven/inc/theme-options.js b/wp-content/themes/twentyeleven/inc/theme-options.js index 691f486ae..bf1be391e 100644 --- a/wp-content/themes/twentyeleven/inc/theme-options.js +++ b/wp-content/themes/twentyeleven/inc/theme-options.js @@ -8,6 +8,8 @@ var farbtastic; }; $(document).ready( function() { + $('#default-color').wrapInner(''); + farbtastic = $.farbtastic('#colorPickerDiv', pickColor); pickColor( $('#link-color').val() ); @@ -31,5 +33,20 @@ var farbtastic; $(document).mousedown( function() { $('#colorPickerDiv').hide(); }); + + $('#default-color a').click( function(e) { + pickColor( '#' + this.innerHTML.replace(/[^a-fA-F0-9]/, '') ); + e.preventDefault(); + }); + + $('.image-radio-option input:radio').change( function() { + var currentDefault = $('#default-color a'), + newDefault; + if ( $('#link-color').val() !== currentDefault.text() ) + return; + newDefault = $(this).next().val(); + currentDefault.text( newDefault ); + pickColor( newDefault ); + }); }); })(jQuery); \ No newline at end of file diff --git a/wp-content/themes/twentyeleven/inc/theme-options.php b/wp-content/themes/twentyeleven/inc/theme-options.php index 2c1286506..cdcebbde9 100644 --- a/wp-content/themes/twentyeleven/inc/theme-options.php +++ b/wp-content/themes/twentyeleven/inc/theme-options.php @@ -118,11 +118,13 @@ function twentyeleven_color_schemes() { 'value' => 'light', 'label' => __( 'Light', 'twentyeleven' ), 'thumbnail' => get_template_directory_uri() . '/inc/images/light.png', + 'default_link_color' => '#1b8be0', ), 'dark' => array( 'value' => 'dark', 'label' => __( 'Dark', 'twentyeleven' ), 'thumbnail' => get_template_directory_uri() . '/inc/images/dark.png', + 'default_link_color' => '#e4741f', ), ); @@ -164,13 +166,34 @@ function twentyeleven_layouts() { function twentyeleven_get_default_theme_options() { $default_theme_options = array( 'color_scheme' => 'light', - 'link_color' => '#1b8be0', + 'link_color' => twentyeleven_get_default_link_color( 'light' ), 'theme_layout' => 'content-sidebar', ); return apply_filters( 'twentyeleven_default_theme_options', $default_theme_options ); } +/** + * Returns the default link color for Twenty Eleven, based on color scheme. + * + * @since Twenty Eleven 1.0 + * + * @param $string $color_scheme Color scheme. Defaults to the active color scheme. + * @return $string Color. +*/ +function twentyeleven_get_default_link_color( $color_scheme = null ) { + if ( null === $color_scheme ) { + $options = twentyeleven_get_theme_options(); + $color_scheme = $options['color_scheme']; + } + + $color_schemes = twentyeleven_color_schemes(); + if ( ! isset( $color_schemes[ $color_scheme ] ) ) + return false; + + return $color_schemes[ $color_scheme ]['default_link_color']; +} + /** * Returns the options array for Twenty Eleven. * @@ -205,14 +228,15 @@ function theme_options_render_page() {
@@ -231,7 +255,7 @@ function theme_options_render_page() {
- + ' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '' ); ?>
@@ -246,7 +270,7 @@ function theme_options_render_page() { @@ -279,6 +303,9 @@ function twentyeleven_theme_options_validate( $input ) { // Color scheme must be in our array of color scheme options if ( isset( $input['color_scheme'] ) && array_key_exists( $input['color_scheme'], twentyeleven_color_schemes() ) ) $output['color_scheme'] = $input['color_scheme']; + + // Our defaults for the link color may have changed, based on the color scheme. + $output['link_color'] = $defaults['link_color'] = twentyeleven_get_default_link_color( $output['color_scheme'] ); // Link color must be 3 or 6 hexadecimal characters if ( isset( $input['link_color'] ) && preg_match( '/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color'] ) )