]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/custom-background.php
WordPress 4.1-scripts
[autoinstalls/wordpress.git] / wp-admin / custom-background.php
index a23efda03697ac4871965e64cc27809767718ecf..8fb1901c254ff8272b84007deb5d2c7a669d3071 100644 (file)
@@ -42,6 +42,11 @@ class Custom_Background {
         */
        private $page = '';
 
+       /**
+        * @var bool
+        */
+       private $updated;
+
        /**
         * Constructor - Register administration header callback.
         *
@@ -55,6 +60,10 @@ class Custom_Background {
                $this->admin_image_div_callback = $admin_image_div_callback;
 
                add_action( 'admin_menu', array( $this, 'init' ) );
+
+               add_action( 'wp_ajax_custom-background-add', array( $this, 'ajax_background_add' ) );
+
+               // Unused since 3.5.0.
                add_action( 'wp_ajax_set-background-image', array( $this, 'wp_set_background_image' ) );
        }
 
@@ -233,6 +242,19 @@ class Custom_Background {
 <div class="wrap" id="custom-background">
 <h2><?php _e( 'Custom Background' ); ?></h2>
 
+<?php if ( current_user_can( 'customize' ) ) { ?>
+<div class="notice notice-info hide-if-no-customize">
+       <p>
+               <?php
+               printf(
+                       __( 'You can now manage and live-preview Custom Backgrounds in the <a href="%1$s">Customizer</a>.' ),
+                       admin_url( 'customize.php?autofocus[control]=background_image' )
+               );
+               ?>
+       </p>
+</div>
+<?php } ?>
+
 <?php if ( ! empty( $this->updated ) ) { ?>
 <div id="message" class="updated">
 <p><?php printf( __( 'Background updated. <a href="%s">Visit your site</a> to see how it looks.' ), home_url( '/' ) ); ?></p>
@@ -312,9 +334,9 @@ class Custom_Background {
        </p>
        <p>
                <label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
-               <a id="choose-from-library-link" class="button"
+               <button id="choose-from-library-link" class="button"
                        data-choose="<?php esc_attr_e( 'Choose a Background Image' ); ?>"
-                       data-update="<?php esc_attr_e( 'Set as background' ); ?>"><?php _e( 'Choose Image' ); ?></a>
+                       data-update="<?php esc_attr_e( 'Set as background' ); ?>"><?php _e( 'Choose Image' ); ?></button>
        </p>
        </form>
 </td>
@@ -446,23 +468,53 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) )
        }
 
        /**
-        * Unused since 3.5.0.
+        * AJAX handler for adding custom background context to an attachment.
+        *
+        * Triggered when the user adds a new background image from the
+        * Media Manager.
+        *
+        * @since 4.1.0
+        */
+       public function ajax_background_add() {
+               check_ajax_referer( 'background-add', 'nonce' );
+
+               if ( ! current_user_can( 'edit_theme_options' ) ) {
+                       wp_send_json_error();
+               }
+
+               $attachment_id = absint( $_POST['attachment_id'] );
+               if ( $attachment_id < 1 ) {
+                       wp_send_json_error();
+               }
+
+               update_post_meta( $attachment_id, '_wp_attachment_is_custom_background', get_stylesheet() );
+
+               wp_send_json_success();
+       }
+
+       /**
         *
         * @since 3.4.0
+        * @deprecated 3.5.0
         */
        public function attachment_fields_to_edit( $form_fields ) {
                return $form_fields;
        }
 
        /**
-        * Unused since 3.5.0.
         *
         * @since 3.4.0
+        * @deprecated 3.5.0
         */
        public function filter_upload_tabs( $tabs ) {
                return $tabs;
        }
 
+       /**
+        *
+        * @since 3.4.0
+        * @deprecated 3.5.0
+        */
        public function wp_set_background_image() {
                if ( ! current_user_can('edit_theme_options') || ! isset( $_POST['attachment_id'] ) ) exit;
                $attachment_id = absint($_POST['attachment_id']);