From 8f4c41a2dd299374711c08af1a304b6521d66190 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Wed, 6 Jun 2012 16:48:53 +0000 Subject: [PATCH] Check context before adding media upload filters. Props SergeyBiryukov. fixes #20819 git-svn-id: https://develop.svn.wordpress.org/trunk@21009 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/custom-background.php | 33 ++++++++++++++++++++------------ wp-admin/custom-header.php | 35 ++++++++++++++++------------------ 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/wp-admin/custom-background.php b/wp-admin/custom-background.php index 921bd853b1..b7d8be8506 100644 --- a/wp-admin/custom-background.php +++ b/wp-admin/custom-background.php @@ -72,8 +72,12 @@ class Custom_Background { add_action("load-$page", array(&$this, 'admin_load')); add_action("load-$page", array(&$this, 'take_action'), 49); add_action("load-$page", array(&$this, 'handle_upload'), 49); - add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 ); - add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) ); + + if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-background' ) { + add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 ); + add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) ); + add_filter( 'media_upload_mime_type_links', '__return_empty_array' ); + } if ( $this->admin_header_callback ) add_action("admin_head-$page", $this->admin_header_callback, 51); @@ -388,21 +392,26 @@ if ( get_background_image() ) { $this->updated = true; } + /** + * Replace default attachment actions with "Set as background" link. + * + * @since 3.4.0 + */ function attachment_fields_to_edit( $form_fields, $post ) { - if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-background' ) { - $form_fields = array( 'image-size' => $form_fields['image-size'] ); - $form_fields['buttons'] = array( 'tr' => '' . __( 'Set as background' ) . '' ); - $form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-background' ); - } + $form_fields = array( 'image-size' => $form_fields['image-size'] ); + $form_fields['buttons'] = array( 'tr' => '' . __( 'Set as background' ) . '' ); + $form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-background' ); return $form_fields; } - function filter_upload_tabs ( $tabs ){ - if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-background' ) - return array( 'library' => __('Media Library') ); - - return $tabs; + /** + * Leave only "Media Library" tab in the uploader window. + * + * @since 3.4.0 + */ + function filter_upload_tabs() { + return array( 'library' => __('Media Library') ); } public function wp_set_background_image() { diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php index 4bda480028..b136dfa275 100644 --- a/wp-admin/custom-header.php +++ b/wp-admin/custom-header.php @@ -94,9 +94,11 @@ class Custom_Image_Header { if ( $this->admin_header_callback ) add_action("admin_head-$page", $this->admin_header_callback, 51); - add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 ); - add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) ); - add_filter( 'media_upload_mime_type_links', '__return_empty_array' ); + if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-header' ) { + add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 ); + add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) ); + add_filter( 'media_upload_mime_type_links', '__return_empty_array' ); + } } /** @@ -972,18 +974,16 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> * @since 3.4.0 */ function attachment_fields_to_edit( $form_fields, $post ) { - if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-header' ) { - $form_fields = array(); - $href = esc_url(add_query_arg(array( - 'page' => 'custom-header', - 'step' => 2, - '_wpnonce-custom-header-upload' => wp_create_nonce('custom-header-upload'), - 'file' => $post->ID - ), admin_url('themes.php'))); + $form_fields = array(); + $href = esc_url(add_query_arg(array( + 'page' => 'custom-header', + 'step' => 2, + '_wpnonce-custom-header-upload' => wp_create_nonce('custom-header-upload'), + 'file' => $post->ID + ), admin_url('themes.php'))); - $form_fields['buttons'] = array( 'tr' => '' . __( 'Set as header' ) . '' ); - $form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-header' ); - } + $form_fields['buttons'] = array( 'tr' => '' . __( 'Set as header' ) . '' ); + $form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-header' ); return $form_fields; } @@ -993,11 +993,8 @@ wp_nonce_field( 'custom-header-options', '_wpnonce-custom-header-options' ); ?> * * @since 3.4.0 */ - function filter_upload_tabs( $tabs ) { - if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-header' ) - return array( 'library' => __('Media Library') ); - - return $tabs; + function filter_upload_tabs() { + return array( 'library' => __('Media Library') ); } }