Message info
 
To:wp-svn@lists.automattic.com From:m@wordpress.org Subject:[wp-svn] [20901] trunk: Preview by default the registered default image for custom backgrounds. Date:Fri, 25 May 2012 17:58:58 +0000 (UTC)
 

Revision
20901
Author
nacin
Date
2012-05-25 17:58:57 +0000 (Fri, 25 May 2012)

Log Message

Preview by default the registered default image for custom backgrounds. props mfields, billerickson.

If there is a default color registered, show a 'Default' action rather than a 'Clear' action, as clearing the value would simply return to the default.

Make current_theme_supports() accept a second argument for 'custom-background' requests, the same as get_theme_support(). Missed in earlier changes, see #20249.

fixes #20734, fixes #18041.

Modified Paths

Diff

Modified: trunk/wp-admin/custom-background.php (20900 => 20901)


--- trunk/wp-admin/custom-background.php	2012-05-25 17:58:22 UTC (rev 20900)
+++ trunk/wp-admin/custom-background.php	2012-05-25 17:58:57 UTC (rev 20901)
@@ -207,15 +207,15 @@
 
 if ( get_background_image() ) {
 	// background-image URL must be single quote, see below
-	$background_styles .= ' background-image: url(\'' . set_url_scheme( get_theme_mod('background_image_thumb', '') ) . '\');'
+	$background_styles .= ' background-image: url(\'' . set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ) . '\');'
 		. ' background-repeat: ' . get_theme_mod('background_repeat', 'repeat') . ';'
 		. ' background-position: top ' . get_theme_mod('background_position_x', 'left');
 }
 ?>
 <div id="custom-background-image" style="<?php echo $background_styles; ?>"><?php // must be double quote, see above ?>
 <?php if ( get_background_image() ) { ?>
-<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod('background_image_thumb', '') ); ?>" style="visibility:hidden;" alt="" /><br />
-<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod('background_image_thumb', '') ); ?>" style="visibility:hidden;" alt="" />
+<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ); ?>" style="visibility:hidden;" alt="" /><br />
+<img class="custom-background-image" src="<?php echo set_url_scheme( get_theme_mod( 'background_image_thumb', get_background_image() ) ); ?>" style="visibility:hidden;" alt="" />
 <?php } ?>
 </div>
 <?php } ?>
@@ -322,9 +322,10 @@
 <tr valign="top">
 <th scope="row"><?php _e( 'Background Color' ); ?></th>
 <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Color' ); ?></span></legend>
-<?php $show_clear = get_background_color() ? '' : ' style="display:none"'; ?>
+<?php $show_clear = get_theme_mod('background_color') ? '' : ' style="display:none"'; ?>
 <input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr(get_background_color()) ?>" />
-<a class="hide-if-no-js" href="#" id="pickcolor"><?php _e('Select a Color'); ?></a> <span<?php echo $show_clear; ?> class="hide-if-no-js" id="clearcolor"> (<a href="#"><?php _e( 'Clear' ); ?></a>)</span>
+<a class="hide-if-no-js" href="#" id="pickcolor"><?php _e('Select a Color'); ?></a> <span<?php echo $show_clear; ?> class="hide-if-no-js" id="clearcolor"> (<a href="#"><?php current_theme_supports( 'custom-background', 'default-color' ) ? _e( 'Default' ) : _e( 'Clear' ); ?></a>)</span>
+<input type="hidden" id="defaultcolor" value="<?php if ( current_theme_supports( 'custom-background', 'default-color' ) ) echo '#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ); ?>" />
 <div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
 </fieldset></td>
 </tr>

Modified: trunk/wp-admin/js/custom-background.dev.js (20900 => 20901)


--- trunk/wp-admin/js/custom-background.dev.js	2012-05-25 17:58:22 UTC (rev 20900)
+++ trunk/wp-admin/js/custom-background.dev.js	2012-05-25 17:58:57 UTC (rev 20901)
@@ -1,55 +1,63 @@
-var farbtastic;
+var farbtastic, pickColor;
 
-function pickColor(color) {
-	farbtastic.setColor(color);
-	jQuery('#background-color').val(color);
-	jQuery('#custom-background-image').css('background-color', color);
-	if ( color && color !== '#' )
-		jQuery('#clearcolor').show();
-	else
-		jQuery('#clearcolor').hide();
-}
+(function($) {
 
-jQuery(document).ready(function() {
-	jQuery('#pickcolor').click(function() {
-		jQuery('#colorPickerDiv').show();
-		return false;
-	});
+	pickColor = function(color, cleared) {
+		farbtastic.setColor(color);
+		$('#background-color').val(color);
+		$('#custom-background-image').css('background-color', color);
+		console.log( color );
+		if ( typeof cleared === 'undefined' )
+			cleared = ! color || color === '#';
+		if ( cleared )
+			$('#clearcolor').hide();
+		else
+			$('#clearcolor').show();
+	}
 
-	jQuery('#clearcolor a').click( function(e) {
-		pickColor('');
-		e.preventDefault();
+	$(document).ready(function() {
+	
+		$('#pickcolor').click(function() {
+			$('#colorPickerDiv').show();
+			return false;
+		});
+	
+		$('#clearcolor a').click( function(e) {
+			pickColor( $('#defaultcolor').val(), true );
+			e.preventDefault();
+		});
+	
+		$('#background-color').keyup(function() {
+			var _hex = $('#background-color').val(), hex = _hex;
+			if ( hex.charAt(0) != '#' )
+				hex = '#' + hex;
+			hex = hex.replace(/[^#a-fA-F0-9]+/, '');
+			if ( hex != _hex )
+				$('#background-color').val(hex);
+			if ( hex.length == 4 || hex.length == 7 )
+				pickColor( hex );
+		});
+	
+		$('input[name="background-position-x"]').change(function() {
+			$('#custom-background-image').css('background-position', $(this).val() + ' top');
+		});
+	
+		$('input[name="background-repeat"]').change(function() {
+			$('#custom-background-image').css('background-repeat', $(this).val());
+		});
+	
+		farbtastic = $.farbtastic('#colorPickerDiv', function(color) {
+			pickColor(color);
+		});
+		pickColor($('#background-color').val());
+	
+		$(document).mousedown(function(){
+			$('#colorPickerDiv').each(function(){
+				var display = $(this).css('display');
+				if ( display == 'block' )
+					$(this).fadeOut(2);
+			});
+		});
 	});
 
-	jQuery('#background-color').keyup(function() {
-		var _hex = jQuery('#background-color').val(), hex = _hex;
-		if ( hex.charAt(0) != '#' )
-			hex = '#' + hex;
-		hex = hex.replace(/[^#a-fA-F0-9]+/, '');
-		if ( hex != _hex )
-			jQuery('#background-color').val(hex);
-		if ( hex.length == 4 || hex.length == 7 )
-			pickColor( hex );
-	});
-
-	jQuery('input[name="background-position-x"]').change(function() {
-		jQuery('#custom-background-image').css('background-position', jQuery(this).val() + ' top');
-	});
-
-	jQuery('input[name="background-repeat"]').change(function() {
-		jQuery('#custom-background-image').css('background-repeat', jQuery(this).val());
-	});
-
-	farbtastic = jQuery.farbtastic('#colorPickerDiv', function(color) {
-		pickColor(color);
-	});
-	pickColor(jQuery('#background-color').val());
-
-	jQuery(document).mousedown(function(){
-		jQuery('#colorPickerDiv').each(function(){
-			var display = jQuery(this).css('display');
-			if ( display == 'block' )
-				jQuery(this).fadeOut(2);
-		});
-	});
-});
+})(jQuery);
\ No newline at end of file

Modified: trunk/wp-includes/theme.php (20900 => 20901)


--- trunk/wp-includes/theme.php	2012-05-25 17:58:22 UTC (rev 20900)
+++ trunk/wp-includes/theme.php	2012-05-25 17:58:57 UTC (rev 20901)
@@ -1501,7 +1501,8 @@
 			break;
 
 		case 'custom-header':
-			// specific custom header capabilities can be registered by passing
+		case 'custom-background' :
+			// specific custom header and background capabilities can be registered by passing
 			// an array to add_theme_support()
 			$header_support = $args[0];
 			return ( isset( $_wp_theme_features[$feature][0][$header_support] ) && $_wp_theme_features[$feature][0][$header_support] );