-function admin_color_scheme_picker() {
- global $_wp_admin_css_colors, $user_id; ?>
-<fieldset><legend class="screen-reader-text"><span><?php _e('Admin Color Scheme')?></span></legend>
-<?php
-$current_color = get_user_option('admin_color', $user_id);
-if ( empty($current_color) )
- $current_color = 'fresh';
-foreach ( $_wp_admin_css_colors as $color => $color_info ): ?>
-<div class="color-option"><input name="admin_color" id="admin_color_<?php echo esc_attr( $color ); ?>" type="radio" value="<?php echo esc_attr( $color ); ?>" class="tog" <?php checked($color, $current_color); ?> />
- <table class="color-palette">
- <tr>
- <?php foreach ( $color_info->colors as $html_color ): ?>
- <td style="background-color: <?php echo esc_attr( $html_color ); ?>" title="<?php echo esc_attr( $color ); ?>"> </td>
- <?php endforeach; ?>
- </tr>
- </table>
-
- <label for="admin_color_<?php echo esc_attr( $color ); ?>"><?php echo esc_html( $color_info->name ); ?></label>
-</div>
- <?php endforeach; ?>
-</fieldset>
-<?php
+function admin_color_scheme_picker( $user_id ) {
+ global $_wp_admin_css_colors;
+
+ ksort( $_wp_admin_css_colors );
+
+ if ( isset( $_wp_admin_css_colors['fresh'] ) ) {
+ // Set Default ('fresh') and Light should go first.
+ $_wp_admin_css_colors = array_filter( array_merge( array( 'fresh' => '', 'light' => '' ), $_wp_admin_css_colors ) );
+ }
+
+ $current_color = get_user_option( 'admin_color', $user_id );
+
+ if ( empty( $current_color ) || ! isset( $_wp_admin_css_colors[ $current_color ] ) ) {
+ $current_color = 'fresh';
+ }
+
+ ?>
+ <fieldset id="color-picker" class="scheme-list">
+ <legend class="screen-reader-text"><span><?php _e( 'Admin Color Scheme' ); ?></span></legend>
+ <?php
+ wp_nonce_field( 'save-color-scheme', 'color-nonce', false );
+ foreach ( $_wp_admin_css_colors as $color => $color_info ) :
+
+ ?>
+ <div class="color-option <?php echo ( $color == $current_color ) ? 'selected' : ''; ?>">
+ <input name="admin_color" id="admin_color_<?php echo esc_attr( $color ); ?>" type="radio" value="<?php echo esc_attr( $color ); ?>" class="tog" <?php checked( $color, $current_color ); ?> />
+ <input type="hidden" class="css_url" value="<?php echo esc_url( $color_info->url ); ?>" />
+ <input type="hidden" class="icon_colors" value="<?php echo esc_attr( wp_json_encode( array( 'icons' => $color_info->icon_colors ) ) ); ?>" />
+ <label for="admin_color_<?php echo esc_attr( $color ); ?>"><?php echo esc_html( $color_info->name ); ?></label>
+ <table class="color-palette">
+ <tr>
+ <?php
+
+ foreach ( $color_info->colors as $html_color ) {
+ ?>
+ <td style="background-color: <?php echo esc_attr( $html_color ); ?>"> </td>
+ <?php
+ }
+
+ ?>
+ </tr>
+ </table>
+ </div>
+ <?php
+
+ endforeach;
+
+ ?>
+ </fieldset>
+ <?php
+}
+
+function wp_color_scheme_settings() {
+ global $_wp_admin_css_colors;
+
+ $color_scheme = get_user_option( 'admin_color' );
+
+ // It's possible to have a color scheme set that is no longer registered.
+ if ( empty( $_wp_admin_css_colors[ $color_scheme ] ) ) {
+ $color_scheme = 'fresh';
+ }
+
+ if ( ! empty( $_wp_admin_css_colors[ $color_scheme ]->icon_colors ) ) {
+ $icon_colors = $_wp_admin_css_colors[ $color_scheme ]->icon_colors;
+ } elseif ( ! empty( $_wp_admin_css_colors['fresh']->icon_colors ) ) {
+ $icon_colors = $_wp_admin_css_colors['fresh']->icon_colors;
+ } else {
+ // Fall back to the default set of icon colors if the default scheme is missing.
+ $icon_colors = array( 'base' => '#999', 'focus' => '#2ea2cc', 'current' => '#fff' );
+ }
+
+ echo '<script type="text/javascript">var _wpColorScheme = ' . wp_json_encode( array( 'icons' => $icon_colors ) ) . ";</script>\n";