WordPress.org

Make WordPress Core

Ticket #17351: 17351.diff

File 17351.diff, 5.7 KB (added by nacin, 7 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