wp/wp-admin/custom-background.php
author ymh <ymh.work@gmail.com>
Thu, 07 Nov 2013 00:08:07 +0000
changeset 1 f6eb5a861d2f
parent 0 d970ebf37754
child 5 5e2f62d02dcd
permissions -rw-r--r--
remove unnessary files. Make timthumb work
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
 * The custom background script.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
 * @package WordPress
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
 * @subpackage Administration
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 * The custom background class.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 * @package WordPress
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
 * @subpackage Administration
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
class Custom_Background {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
	 * Callback for administration header.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
	 * @var callback
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
	var $admin_header_callback;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
	 * Callback for header div.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
	 * @var callback
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
	var $admin_image_div_callback;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
	 * Holds the page menu hook.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
	 * @var string
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
	 * @access private
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
	var $page = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
	 * Constructor - Register administration header callback.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
	 * @param callback $admin_header_callback
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
	 * @param callback $admin_image_div_callback Optional custom image div output callback.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
	 * @return Custom_Background
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
	function __construct($admin_header_callback = '', $admin_image_div_callback = '') {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
		$this->admin_header_callback = $admin_header_callback;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
		$this->admin_image_div_callback = $admin_image_div_callback;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
		add_action( 'admin_menu', array( $this, 'init' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
		add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	 * Set up the hooks for the Custom Background admin page.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
	function init() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
		if ( ! current_user_can('edit_theme_options') )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
		$this->page = $page = add_theme_page(__('Background'), __('Background'), 'edit_theme_options', 'custom-background', array($this, 'admin_page'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
		add_action("load-$page", array($this, 'admin_load'));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
		add_action("load-$page", array($this, 'take_action'), 49);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
		add_action("load-$page", array($this, 'handle_upload'), 49);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
		if ( $this->admin_header_callback )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			add_action("admin_head-$page", $this->admin_header_callback, 51);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
	 * Set up the enqueue for the CSS & JavaScript files.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
	function admin_load() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
		get_current_screen()->add_help_tab( array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
			'id'      => 'overview',
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
			'title'   => __('Overview'),
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
			'content' =>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
				'<p>' . __( 'You can customize the look of your site without touching any of your theme&#8217;s code by using a custom background. Your background can be an image or a color.' ) . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
				'<p>' . __( 'To use a background image, simply upload it or choose an image that has already been uploaded to your Media Library by clicking the &#8220;Choose Image&#8221; button. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site.' ) . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
				'<p>' . __( 'You can also choose a background color by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. &#8220;#ff0000&#8221; for red, or by choosing a color using the color picker.' ) . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
				'<p>' . __( 'Don&#8217;t forget to click on the Save Changes button when you are finished.' ) . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
		) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
		get_current_screen()->set_help_sidebar(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
			'<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
			'<p>' . __( '<a href="http://codex.wordpress.org/Appearance_Background_Screen" target="_blank">Documentation on Custom Background</a>' ) . '</p>' .
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
			'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
		wp_enqueue_media();
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
		wp_enqueue_script('custom-background');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
		wp_enqueue_style('wp-color-picker');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
	 * Execute custom background modification.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
	function take_action() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
		if ( empty($_POST) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
		if ( isset($_POST['reset-background']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
			check_admin_referer('custom-background-reset', '_wpnonce-custom-background-reset');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
			remove_theme_mod('background_image');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
			remove_theme_mod('background_image_thumb');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
			$this->updated = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
		if ( isset($_POST['remove-background']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
			// @TODO: Uploaded files are not removed here.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
			check_admin_referer('custom-background-remove', '_wpnonce-custom-background-remove');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
			set_theme_mod('background_image', '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
			set_theme_mod('background_image_thumb', '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
			$this->updated = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
			wp_safe_redirect( $_POST['_wp_http_referer'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
		if ( isset($_POST['background-repeat']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
			check_admin_referer('custom-background');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
			if ( in_array($_POST['background-repeat'], array('repeat', 'no-repeat', 'repeat-x', 'repeat-y')) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
				$repeat = $_POST['background-repeat'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
				$repeat = 'repeat';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
			set_theme_mod('background_repeat', $repeat);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
		if ( isset($_POST['background-position-x']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
			check_admin_referer('custom-background');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
			if ( in_array($_POST['background-position-x'], array('center', 'right', 'left')) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
				$position = $_POST['background-position-x'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
				$position = 'left';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
			set_theme_mod('background_position_x', $position);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
		if ( isset($_POST['background-attachment']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
			check_admin_referer('custom-background');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
			if ( in_array($_POST['background-attachment'], array('fixed', 'scroll')) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
				$attachment = $_POST['background-attachment'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
				$attachment = 'fixed';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
			set_theme_mod('background_attachment', $attachment);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
		if ( isset($_POST['background-color']) ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
			check_admin_referer('custom-background');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
			$color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['background-color']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
			if ( strlen($color) == 6 || strlen($color) == 3 )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
				set_theme_mod('background_color', $color);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
			else
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
				set_theme_mod('background_color', '');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
		}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
		$this->updated = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
	 * Display the custom background page.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
	function admin_page() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
<div class="wrap" id="custom-background">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
<?php screen_icon(); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
<h2><?php _e('Custom Background'); ?></h2>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
<?php if ( !empty($this->updated) ) { ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
<div id="message" class="updated">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
<p><?php printf( __( 'Background updated. <a href="%s">Visit your site</a> to see how it looks.' ), home_url( '/' ) ); ?></p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
<?php }
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
	if ( $this->admin_image_div_callback ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
		call_user_func($this->admin_image_div_callback);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
	} else {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
<h3><?php _e('Background Image'); ?></h3>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
<table class="form-table">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
<tbody>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
<th scope="row"><?php _e('Preview'); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
<td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
$background_styles = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
if ( $bgcolor = get_background_color() )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
	$background_styles .= 'background-color: #' . $bgcolor . ';';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
if ( get_background_image() ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
	$background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
	// background-image URL must be single quote, see below
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
	$background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
		. ' background-repeat: ' . get_theme_mod('background_repeat', 'repeat') . ';'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
		. ' background-position: top ' . get_theme_mod('background_position_x', 'left');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
<div id="custom-background-image" style="<?php echo $background_styles; ?>"><?php // must be double quote, see above ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
<?php if ( get_background_image() ) { ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
<img class="custom-background-image" src="<?php echo $background_image_thumb; ?>" style="visibility:hidden;" alt="" /><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
<img class="custom-background-image" src="<?php echo $background_image_thumb; ?>" style="visibility:hidden;" alt="" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
<?php } ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
<?php } ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
</td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
<?php if ( get_background_image() ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
<th scope="row"><?php _e('Remove Image'); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
<td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
<form method="post" action="">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
<?php wp_nonce_field('custom-background-remove', '_wpnonce-custom-background-remove'); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
<?php submit_button( __( 'Remove Background Image' ), 'button', 'remove-background', false ); ?><br/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
<?php _e('This will remove the background image. You will not be able to restore any customizations.') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
</td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
<?php endif; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
<?php $default_image = get_theme_support( 'custom-background', 'default-image' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
<?php if ( $default_image && get_background_image() != $default_image ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
<th scope="row"><?php _e('Restore Original Image'); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
<td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
<form method="post" action="">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
<?php wp_nonce_field('custom-background-reset', '_wpnonce-custom-background-reset'); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
<?php submit_button( __( 'Restore Original Image' ), 'button', 'reset-background', false ); ?><br/>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
<?php _e('This will restore the original background image. You will not be able to restore any customizations.') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
</td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
<?php endif; ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
<th scope="row"><?php _e('Select Image'); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
<td><form enctype="multipart/form-data" id="upload-form" class="wp-upload-form" method="post" action="">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
	<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
		<label for="upload"><?php _e( 'Choose an image from your computer:' ); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
		<input type="file" id="upload" name="import" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
		<input type="hidden" name="action" value="save" />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
		<?php wp_nonce_field( 'custom-background-upload', '_wpnonce-custom-background-upload' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
		<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
	</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
	<p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
		<label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
		<a id="choose-from-library-link" class="button"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
			data-choose="<?php esc_attr_e( 'Choose a Background Image' ); ?>"
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
			data-update="<?php esc_attr_e( 'Set as background' ); ?>"><?php _e( 'Choose Image' ); ?></a>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
	</p>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
	</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
</td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
</tbody>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
</table>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
<h3><?php _e('Display Options') ?></h3>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
<form method="post" action="">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
<table class="form-table">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
<tbody>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
<?php if ( get_background_image() ) : ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
<th scope="row"><?php _e( 'Position' ); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Position' ); ?></span></legend>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
<label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
<input name="background-position-x" type="radio" value="left"<?php checked('left', get_theme_mod('background_position_x', 'left')); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
<?php _e('Left') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
</label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
<label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
<input name="background-position-x" type="radio" value="center"<?php checked('center', get_theme_mod('background_position_x', 'left')); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
<?php _e('Center') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
</label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
<label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
<input name="background-position-x" type="radio" value="right"<?php checked('right', get_theme_mod('background_position_x', 'left')); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
<?php _e('Right') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
</label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
</fieldset></td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
<th scope="row"><?php _e( 'Repeat' ); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Repeat' ); ?></span></legend>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
<label><input type="radio" name="background-repeat" value="no-repeat"<?php checked('no-repeat', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('No Repeat'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
	<label><input type="radio" name="background-repeat" value="repeat"<?php checked('repeat', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
	<label><input type="radio" name="background-repeat" value="repeat-x"<?php checked('repeat-x', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile Horizontally'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
	<label><input type="radio" name="background-repeat" value="repeat-y"<?php checked('repeat-y', get_theme_mod('background_repeat', 'repeat')); ?> /> <?php _e('Tile Vertically'); ?></label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
</fieldset></td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
<th scope="row"><?php _ex( 'Attachment', 'Background Attachment' ); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Attachment' ); ?></span></legend>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
<label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
<input name="background-attachment" type="radio" value="scroll" <?php checked('scroll', get_theme_mod('background_attachment', 'scroll')); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
<?php _e('Scroll') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
</label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
<label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
<input name="background-attachment" type="radio" value="fixed" <?php checked('fixed', get_theme_mod('background_attachment', 'scroll')); ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
<?php _e('Fixed') ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
</label>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
</fieldset></td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
<?php endif; // get_background_image() ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
<tr valign="top">
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
<th scope="row"><?php _e( 'Background Color' ); ?></th>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Color' ); ?></span></legend>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
$default_color = '';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
if ( current_theme_supports( 'custom-background', 'default-color' ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
	$default_color = ' data-default-color="#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ) . '"';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr( get_background_color() ); ?>"<?php echo $default_color ?> />
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
</fieldset></td>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
</tr>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
</tbody>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
</table>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
<?php wp_nonce_field('custom-background'); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
<?php submit_button( null, 'primary', 'save-background-options' ); ?>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
</form>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
</div>
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
<?php
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
	 * Handle an Image upload for the background image.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
	 * @since 3.0.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
	function handle_upload() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
		if ( empty($_FILES) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
			return;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
		check_admin_referer('custom-background-upload', '_wpnonce-custom-background-upload');
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
		$overrides = array('test_form' => false);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
		$uploaded_file = $_FILES['import'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
		$wp_filetype = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'], false );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
		if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
			wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
		$file = wp_handle_upload($uploaded_file, $overrides);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
		if ( isset($file['error']) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
			wp_die( $file['error'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
		$url = $file['url'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
		$type = $file['type'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
		$file = $file['file'];
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
		$filename = basename($file);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
		// Construct the object array
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
		$object = array(
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   370
			'post_title' => $filename,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   371
			'post_content' => $url,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   372
			'post_mime_type' => $type,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   373
			'guid' => $url,
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   374
			'context' => 'custom-background'
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   375
		);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   376
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   377
		// Save the data
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   378
		$id = wp_insert_attachment($object, $file);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   379
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   380
		// Add the meta-data
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   381
		wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   382
		update_post_meta( $id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   383
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   384
		set_theme_mod('background_image', esc_url_raw($url));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   385
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   386
		$thumbnail = wp_get_attachment_image_src( $id, 'thumbnail' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   387
		set_theme_mod('background_image_thumb', esc_url_raw( $thumbnail[0] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   388
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   389
		/** This action is documented in wp-admin/custom-header.php */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   390
		do_action( 'wp_create_file_in_uploads', $file, $id ); // For replication
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   391
		$this->updated = true;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   392
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   393
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   394
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   395
	 * Unused since 3.5.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   396
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   397
	 * @since 3.4.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   398
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   399
	function attachment_fields_to_edit( $form_fields ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   400
		return $form_fields;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   401
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   402
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   403
	/**
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   404
	 * Unused since 3.5.0.
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   405
	 *
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   406
	 * @since 3.4.0
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   407
	 */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   408
	function filter_upload_tabs( $tabs ) {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   409
		return $tabs;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   410
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   411
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   412
	public function wp_set_background_image() {
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   413
		if ( ! current_user_can('edit_theme_options') || ! isset( $_POST['attachment_id'] ) ) exit;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   414
		$attachment_id = absint($_POST['attachment_id']);
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   415
		/** This filter is documented in wp-admin/includes/media.php */
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   416
		$sizes = array_keys(apply_filters( 'image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size')) ));
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   417
		$size = 'thumbnail';
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   418
		if ( in_array( $_POST['size'], $sizes ) )
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   419
			$size = esc_attr( $_POST['size'] );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   420
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   421
		update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_option('stylesheet' ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   422
		$url = wp_get_attachment_image_src( $attachment_id, $size );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   423
		$thumbnail = wp_get_attachment_image_src( $attachment_id, 'thumbnail' );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   424
		set_theme_mod( 'background_image', esc_url_raw( $url[0] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   425
		set_theme_mod( 'background_image_thumb', esc_url_raw( $thumbnail[0] ) );
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   426
		exit;
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   427
	}
d970ebf37754 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   428
}