WordPress.org

Make WordPress Core

Ticket #17351: 17351.diff

File 17351.diff, 5.7 KB (added by nacin, 3 years ago)
  • wp-content/themes/twentyeleven/inc/theme-options.php

     
    8383                        'value' => 'light', 
    8484                        'label' => __( 'Light', 'twentyeleven' ), 
    8585                        'thumbnail' => get_template_directory_uri() . '/inc/images/light.png', 
     86                        'default_link_color' => '#1b8be0', 
    8687                ), 
    8788                'dark' => array( 
    8889                        'value' => 'dark', 
    8990                        'label' => __( 'Dark', 'twentyeleven' ), 
    9091                        'thumbnail' => get_template_directory_uri() . '/inc/images/dark.png', 
     92                        'default_link_color' => '#e4741f', 
    9193                ), 
    9294        ); 
    9395 
     
    129131function twentyeleven_get_default_theme_options() { 
    130132        $default_theme_options = array( 
    131133                'color_scheme' => 'light', 
    132                 'link_color'   => '#1b8be0', 
     134                'link_color'   => twentyeleven_get_default_link_color( 'light' ), 
    133135                'theme_layout' => 'content-sidebar', 
    134136        ); 
    135137 
     
    146148} 
    147149 
    148150/** 
     151 * Returns the default link color for Twenty Eleven, based on color scheme. 
     152 * 
     153 * @since Twenty Eleven 1.0 
     154 * 
     155 * @param $string $color_scheme Color scheme. Defaults to the active color scheme. 
     156 * @return $string Color. 
     157*/ 
     158function twentyeleven_get_default_link_color( $color_scheme = null ) { 
     159        if ( null === $color_scheme ) { 
     160                $options = twentyeleven_get_theme_options(); 
     161                $color_scheme = $options['color_scheme']; 
     162        } 
     163 
     164        $color_schemes = twentyeleven_color_schemes(); 
     165        if ( ! isset( $color_schemes[ $color_scheme ] ) ) 
     166                return false; 
     167 
     168        return $color_schemes[ $color_scheme ]['default_link_color']; 
     169} 
     170 
     171/** 
    149172 * Returns the options array for Twenty Eleven. 
    150173 * 
    151174 * @since Twenty Eleven 1.0 
     
    170193                                        <td> 
    171194                                                <fieldset><legend class="screen-reader-text"><span><?php _e( 'Color Scheme', 'twentyeleven' ); ?></span></legend> 
    172195                                                <?php 
    173                                                         foreach ( twentyeleven_color_schemes() as $color ) { 
     196                                                        foreach ( twentyeleven_color_schemes() as $scheme ) { 
    174197                                                                ?> 
    175198                                                                <div class="layout"> 
    176199                                                                <label class="description"> 
    177                                                                         <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $color['value'] ); ?>" <?php checked( $options['color_scheme'], $color['value'] ); ?> /> 
     200                                                                        <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> /> 
     201                                                                        <input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" /> 
    178202                                                                        <span> 
    179                                                                                 <img src="<?php echo esc_url( $color['thumbnail'] ); ?>"/> 
    180                                                                                 <?php echo $color['label']; ?> 
     203                                                                                <img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" /> 
     204                                                                                <?php echo $scheme['label']; ?> 
    181205                                                                        </span> 
    182206                                                                </label> 
    183207                                                                </div> 
     
    196220                                                        <input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'twentyeleven' ); ?>"> 
    197221                                                        <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div> 
    198222                                                        <br /> 
    199                                                         <small class="description"><?php printf( __( 'Default color: %s', 'twentyeleven' ), $default_options['link_color'] ); ?></small> 
     223                                                        <span><?php printf( __( 'Default color: %s', 'twentyeleven' ), '<span id="default-color">' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span> 
    200224                                                </fieldset> 
    201225                                        </td> 
    202226                                </tr> 
     
    211235                                                                <label class="description"> 
    212236                                                                        <input type="radio" name="twentyeleven_theme_options[theme_layout]" value="<?php echo esc_attr( $layout['value'] ); ?>" <?php checked( $options['theme_layout'], $layout['value'] ); ?> /> 
    213237                                                                        <span> 
    214                                                                                 <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>"/> 
     238                                                                                <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>" width="136" height="122" /> 
    215239                                                                                <?php echo $layout['label']; ?> 
    216240                                                                        </span> 
    217241                                                                </label> 
     
    245269        if ( isset( $input['color_scheme'] ) && array_key_exists( $input['color_scheme'], twentyeleven_color_schemes() ) ) 
    246270                $output['color_scheme'] = $input['color_scheme']; 
    247271 
     272        // Our defaults for the link color may have changed, based on the color scheme. 
     273        $output['link_color'] = $defaults['link_color'] = twentyeleven_get_default_link_color( $output['color_scheme'] ); 
     274 
    248275        // Link color must be 3 or 6 hexadecimal characters 
    249276        if ( isset( $input['link_color'] ) && preg_match( '/^#?([a-f0-9]{3}){1,2}$/i', $input['link_color'] ) ) 
    250277                        $output['link_color'] = '#' . strtolower( ltrim( $input['link_color'], '#' ) ); 
  • wp-content/themes/twentyeleven/inc/theme-options.js

     
    88        }; 
    99 
    1010        $(document).ready( function() { 
     11                $('#default-color').wrapInner('<a href="#" />'); 
     12 
    1113                farbtastic = $.farbtastic('#colorPickerDiv', pickColor); 
    1214 
    1315                pickColor( $('#link-color').val() ); 
     
    3133                $(document).mousedown( function() { 
    3234                        $('#colorPickerDiv').hide(); 
    3335                }); 
     36 
     37                $('#default-color a').click( function(e) { 
     38                        pickColor( '#' + this.innerHTML.replace(/[^a-fA-F0-9]/, '') ); 
     39                        e.preventDefault(); 
     40                }); 
     41 
     42                $('.image-radio-option input:radio').change( function() { 
     43                        var currentDefault = $('#default-color a'), 
     44                                newDefault; 
     45                        if ( $('#link-color').val() !== currentDefault.text() ) 
     46                                return; 
     47                        newDefault = $(this).next().val(); 
     48                        currentDefault.text( newDefault ); 
     49                        pickColor( newDefault ); 
     50                }); 
    3451        }); 
    3552})(jQuery); 
     53 No newline at end of file