WordPress.org

Make WordPress Core

Ticket #18045: 18045.2.diff

File 18045.2.diff, 7.5 KB (added by nacin, 7 years ago)

Refreshed.

  • wp-content/themes/twentyeleven/inc/theme-options.php

     
    4646                'twentyeleven_theme_options', // Database option, see twentyeleven_get_theme_options()
    4747                'twentyeleven_theme_options_validate' // The sanitization callback, see twentyeleven_theme_options_validate()
    4848        );
     49
     50        // Register our settings field group
     51        add_settings_section(
     52                'general', // Unique identifier for the settings section
     53                '',        // Section title (we don't want anything)
     54                '__return_false', // Section callback (we don't want anything)
     55                'theme_options'   // Menu slug, used to uniquely identify the page; see twentyeleven_theme_options_add_page()
     56        );
     57
     58        // Register our individual settings fields
     59        add_settings_field(
     60                'color_scheme',  // Unique identifier for the field for this section
     61                __( 'Color Scheme', 'twentyeleven' ),           // Setting field label
     62                'twentyeleven_settings_field_color_scheme', // Function that renders the settings field
     63                'theme_options', // Menu slug, used to uniquely identify the page; see twentyeleven_theme_options_add_page()
     64                'general'        // Settings section. Same as the first argument in the add_settings_section() above
     65        );
     66
     67        add_settings_field( 'link_color', __( 'Link Color', 'twentyeleven' ), 'twentyeleven_settings_field_link_color', 'theme_options', 'general' );
     68        add_settings_field( 'layout',     __( 'Layout',     'twentyeleven' ), 'twentyeleven_settings_field_layout',     'theme_options', 'general' );
    4969}
    5070add_action( 'admin_init', 'twentyeleven_theme_options_init' );
    5171
     
    202222}
    203223
    204224/**
     225 * Renders the Color Scheme setting field.
     226 *
     227 * @since Twenty Eleven 1.2
     228 */
     229function twentyeleven_settings_field_color_scheme() {
     230        $options = twentyeleven_get_theme_options();
     231
     232        foreach ( twentyeleven_color_schemes() as $scheme ) {
     233        ?>
     234        <div class="layout image-radio-option color-scheme">
     235        <label class="description">
     236                <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> />
     237                <input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" />
     238                <span>
     239                        <img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" alt="" />
     240                        <?php echo $scheme['label']; ?>
     241                </span>
     242        </label>
     243        </div>
     244        <?php
     245        }
     246}
     247
     248/**
     249 * Renders the Link Color setting field.
     250 *
     251 * @since Twenty Eleven 1.2
     252 */
     253function twentyeleven_settings_field_link_color() {
     254        $options = twentyeleven_get_theme_options();
     255        ?>
     256        <input type="text" name="twentyeleven_theme_options[link_color]" id="link-color" value="<?php echo esc_attr( $options['link_color'] ); ?>" />
     257        <a href="#" class="pickcolor hide-if-no-js" id="link-color-example"></a>
     258        <input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'twentyeleven' ); ?>" />
     259        <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
     260        <br />
     261        <span><?php printf( __( 'Default color: %s', 'twentyeleven' ), '<span id="default-color">' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span>
     262        <?php
     263}
     264
     265/**
     266 * Renders the Layout setting field.
     267 *
     268 * @since Twenty Eleven 1.2
     269 */
     270function twentyeleven_settings_field_layout() {
     271        $options = twentyeleven_get_theme_options();
     272        foreach ( twentyeleven_layouts() as $layout ) {
     273                ?>
     274                <div class="layout image-radio-option theme-layout">
     275                <label class="description">
     276                        <input type="radio" name="twentyeleven_theme_options[theme_layout]" value="<?php echo esc_attr( $layout['value'] ); ?>" <?php checked( $options['theme_layout'], $layout['value'] ); ?> />
     277                        <span>
     278                                <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>" width="136" height="122" alt="" />
     279                                <?php echo $layout['label']; ?>
     280                        </span>
     281                </label>
     282                </div>
     283                <?php
     284        }
     285}
     286
     287/**
    205288 * Returns the options array for Twenty Eleven.
    206289 *
    207290 * @since Twenty Eleven 1.2
     
    216299                <form method="post" action="options.php">
    217300                        <?php
    218301                                settings_fields( 'twentyeleven_options' );
    219                                 $options = twentyeleven_get_theme_options();
    220                                 $default_options = twentyeleven_get_default_theme_options();
    221                         ?>
    222302
    223                         <table class="form-table">
     303                                do_settings_sections( 'theme_options' );
    224304
    225                                 <tr valign="top" class="image-radio-option color-scheme"><th scope="row"><?php _e( 'Color Scheme', 'twentyeleven' ); ?></th>
    226                                         <td>
    227                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Color Scheme', 'twentyeleven' ); ?></span></legend>
    228                                                 <?php
    229                                                         foreach ( twentyeleven_color_schemes() as $scheme ) {
    230                                                                 ?>
    231                                                                 <div class="layout">
    232                                                                 <label class="description">
    233                                                                         <input type="radio" name="twentyeleven_theme_options[color_scheme]" value="<?php echo esc_attr( $scheme['value'] ); ?>" <?php checked( $options['color_scheme'], $scheme['value'] ); ?> />
    234                                                                         <input type="hidden" id="default-color-<?php echo esc_attr( $scheme['value'] ); ?>" value="<?php echo esc_attr( $scheme['default_link_color'] ); ?>" />
    235                                                                         <span>
    236                                                                                 <img src="<?php echo esc_url( $scheme['thumbnail'] ); ?>" width="136" height="122" alt="" />
    237                                                                                 <?php echo $scheme['label']; ?>
    238                                                                         </span>
    239                                                                 </label>
    240                                                                 </div>
    241                                                                 <?php
    242                                                         }
    243                                                 ?>
    244                                                 </fieldset>
    245                                         </td>
    246                                 </tr>
    247 
    248                                 <tr valign="top"><th scope="row"><?php _e( 'Link Color', 'twentyeleven' ); ?></th>
    249                                         <td>
    250                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Link Color', 'twentyeleven' ); ?></span></legend>
    251                                                         <input type="text" name="twentyeleven_theme_options[link_color]" id="link-color" value="<?php echo esc_attr( $options['link_color'] ); ?>" />
    252                                                         <a href="#" class="pickcolor hide-if-no-js" id="link-color-example"></a>
    253                                                         <input type="button" class="pickcolor button hide-if-no-js" value="<?php esc_attr_e( 'Select a Color', 'twentyeleven' ); ?>" />
    254                                                         <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
    255                                                         <br />
    256                                                         <span><?php printf( __( 'Default color: %s', 'twentyeleven' ), '<span id="default-color">' . twentyeleven_get_default_link_color( $options['color_scheme'] ) . '</span>' ); ?></span>
    257                                                 </fieldset>
    258                                         </td>
    259                                 </tr>
    260 
    261                                 <tr valign="top" class="image-radio-option theme-layout"><th scope="row"><?php _e( 'Default Layout', 'twentyeleven' ); ?></th>
    262                                         <td>
    263                                                 <fieldset><legend class="screen-reader-text"><span><?php _e( 'Color Scheme', 'twentyeleven' ); ?></span></legend>
    264                                                 <?php
    265                                                         foreach ( twentyeleven_layouts() as $layout ) {
    266                                                                 ?>
    267                                                                 <div class="layout">
    268                                                                 <label class="description">
    269                                                                         <input type="radio" name="twentyeleven_theme_options[theme_layout]" value="<?php echo esc_attr( $layout['value'] ); ?>" <?php checked( $options['theme_layout'], $layout['value'] ); ?> />
    270                                                                         <span>
    271                                                                                 <img src="<?php echo esc_url( $layout['thumbnail'] ); ?>" width="136" height="122" alt="" />
    272                                                                                 <?php echo $layout['label']; ?>
    273                                                                         </span>
    274                                                                 </label>
    275                                                                 </div>
    276                                                                 <?php
    277                                                         }
    278                                                 ?>
    279                                                 </fieldset>
    280                                         </td>
    281                                 </tr>
    282                         </table>
    283 
    284                         <?php submit_button(); ?>
     305                                submit_button();
     306                        ?>
    285307                </form>
    286308        </div>
    287309        <?php