X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/4713a14935b83517997f3c88f808eb41da55033d..fc24d733700d6d2bd886ffa9188df5c78069b018:/wp-admin/custom-background.php diff --git a/wp-admin/custom-background.php b/wp-admin/custom-background.php index e53cd7d2..8fb1901c 100644 --- a/wp-admin/custom-background.php +++ b/wp-admin/custom-background.php @@ -22,7 +22,7 @@ class Custom_Background { * @since 3.0.0 * @access private */ - var $admin_header_callback; + private $admin_header_callback; /** * Callback for header div. @@ -31,7 +31,7 @@ class Custom_Background { * @since 3.0.0 * @access private */ - var $admin_image_div_callback; + private $admin_image_div_callback; /** * Holds the page menu hook. @@ -40,7 +40,12 @@ class Custom_Background { * @since 3.0.0 * @access private */ - var $page = ''; + private $page = ''; + + /** + * @var bool + */ + private $updated; /** * Constructor - Register administration header callback. @@ -50,20 +55,76 @@ class Custom_Background { * @param callback $admin_image_div_callback Optional custom image div output callback. * @return Custom_Background */ - function __construct($admin_header_callback = '', $admin_image_div_callback = '') { + public function __construct($admin_header_callback = '', $admin_image_div_callback = '') { $this->admin_header_callback = $admin_header_callback; $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' ) ); } + /** + * Make private properties readable for backwards compatibility. + * + * @since 4.0.0 + * @access public + * + * @param string $name Property name. + * @return mixed Property. + */ + public function __get( $name ) { + return $this->$name; + } + + /** + * Make private properties settable for backwards compatibility. + * + * @since 4.0.0 + * @access public + * + * @param string $name Property to set. + * @param mixed $value Property value. + * @return mixed Newly-set property. + */ + public function __set( $name, $value ) { + return $this->$name = $value; + } + + /** + * Make private properties checkable for backwards compatibility. + * + * @since 4.0.0 + * @access public + * + * @param string $name Property to check if set. + * @return bool Whether the property is set. + */ + public function __isset( $name ) { + return isset( $this->$name ); + } + + /** + * Make private properties un-settable for backwards compatibility. + * + * @since 4.0.0 + * @access public + * + * @param string $name Property to unset. + */ + public function __unset( $name ) { + unset( $this->$name ); + } + /** * Set up the hooks for the Custom Background admin page. * * @since 3.0.0 */ - function init() { + public function init() { if ( ! current_user_can('edit_theme_options') ) return; @@ -82,7 +143,7 @@ class Custom_Background { * * @since 3.0.0 */ - function admin_load() { + public function admin_load() { get_current_screen()->add_help_tab( array( 'id' => 'overview', 'title' => __('Overview'), @@ -109,7 +170,7 @@ class Custom_Background { * * @since 3.0.0 */ - function take_action() { + public function take_action() { if ( empty($_POST) ) return; @@ -176,11 +237,24 @@ class Custom_Background { * * @since 3.0.0 */ - function admin_page() { + public function admin_page() { ?>

+ +
+

+ Customizer.' ), + admin_url( 'customize.php?autofocus[control]=background_image' ) + ); + ?> +

+
+ + updated ) ) { ?>

Visit your site to see how it looks.' ), home_url( '/' ) ); ?>

@@ -204,7 +278,8 @@ class Custom_Background { if ( get_background_image() ) { $background_image_thumb = esc_url( set_url_scheme( get_theme_mod( 'background_image_thumb', str_replace( '%', '%%', get_background_image() ) ) ) ); - // background-image URL must be single quote, see below + + // Background-image URL must be single quote, see below. $background_styles .= ' background-image: url(\'' . $background_image_thumb . '\');' . ' background-repeat: ' . get_theme_mod( 'background_repeat', get_theme_support( 'custom-background', 'default-repeat' ) ) . ';' . ' background-position: top ' . get_theme_mod( 'background_position_x', get_theme_support( 'custom-background', 'default-position-x' ) ); @@ -259,9 +334,9 @@ class Custom_Background {


- + data-update="">

@@ -343,7 +418,7 @@ if ( current_theme_supports( 'custom-background', 'default-color' ) ) * * @since 3.0.0 */ - function handle_upload() { + public function handle_upload() { if ( empty($_FILES) ) return; @@ -393,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 */ - function attachment_fields_to_edit( $form_fields ) { + public function attachment_fields_to_edit( $form_fields ) { return $form_fields; } /** - * Unused since 3.5.0. * * @since 3.4.0 + * @deprecated 3.5.0 */ - function filter_upload_tabs( $tabs ) { + 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']);