diff -r a4642baaf829 -r 4d4862461b8d web/wp-admin/custom-header.php --- a/web/wp-admin/custom-header.php Tue Feb 02 14:45:47 2010 +0000 +++ b/web/wp-admin/custom-header.php Tue Feb 02 15:44:16 2010 +0000 @@ -1,478 +1,478 @@ -admin_header_callback = $admin_header_callback; - } - - /** - * Setup the hooks for the Custom Header admin page. - * - * @since unknown - */ - function init() { - $page = add_theme_page(__('Custom Header'), __('Custom Header'), 'edit_themes', 'custom-header', array(&$this, 'admin_page')); - - add_action("admin_print_scripts-$page", array(&$this, 'js_includes')); - add_action("admin_print_styles-$page", array(&$this, 'css_includes')); - add_action("admin_head-$page", array(&$this, 'take_action'), 50); - add_action("admin_head-$page", array(&$this, 'js'), 50); - add_action("admin_head-$page", $this->admin_header_callback, 51); - } - - /** - * Get the current step. - * - * @since unknown - * - * @return int Current step - */ - function step() { - if ( ! isset( $_GET['step'] ) ) - return 1; - - $step = (int) $_GET['step']; - if ( $step < 1 || 3 < $step ) - $step = 1; - - return $step; - } - - /** - * Setup the enqueue for the JavaScript files. - * - * @since unknown - */ - function js_includes() { - $step = $this->step(); - - if ( 1 == $step ) - wp_enqueue_script('farbtastic'); - elseif ( 2 == $step ) - wp_enqueue_script('jcrop'); - } - - /** - * Setup the enqueue for the CSS files - * - * @since 2.7 - */ - function css_includes() { - $step = $this->step(); - - if ( 1 == $step ) - wp_enqueue_style('farbtastic'); - elseif ( 2 == $step ) - wp_enqueue_style('jcrop'); - } - - /** - * Execute custom header modification. - * - * @since unknown - */ - function take_action() { - if ( isset( $_POST['textcolor'] ) ) { - check_admin_referer('custom-header'); - if ( 'blank' == $_POST['textcolor'] ) { - set_theme_mod('header_textcolor', 'blank'); - } else { - $color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['textcolor']); - if ( strlen($color) == 6 || strlen($color) == 3 ) - set_theme_mod('header_textcolor', $color); - } - } - if ( isset($_POST['resetheader']) ) { - check_admin_referer('custom-header'); - remove_theme_mods(); - } - } - - /** - * Execute Javascript depending on step. - * - * @since unknown - */ - function js() { - $step = $this->step(); - if ( 1 == $step ) - $this->js_1(); - elseif ( 2 == $step ) - $this->js_2(); - } - - /** - * Display Javascript based on Step 1. - * - * @since unknown - */ - function js_1() { ?> - - - - -
-

-
- - -
- -

-

- -
-

-
-
- -
- - - -
- - - -
-
-

-

%1$d x %2$d pixels will be used as-is.'), HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); ?>

- -
-
- - -

- -

-
- -
- - -
-

-

-
- - -
-
- false); - $file = wp_handle_upload($_FILES['import'], $overrides); - - if ( isset($file['error']) ) - die( $file['error'] ); - - $url = $file['url']; - $type = $file['type']; - $file = $file['file']; - $filename = basename($file); - - // Construct the object array - $object = array( - 'post_title' => $filename, - 'post_content' => $url, - 'post_mime_type' => $type, - 'guid' => $url); - - // Save the data - $id = wp_insert_attachment($object, $file); - - list($width, $height, $type, $attr) = getimagesize( $file ); - - if ( $width == HEADER_IMAGE_WIDTH && $height == HEADER_IMAGE_HEIGHT ) { - // Add the meta-data - wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); - - set_theme_mod('header_image', esc_url($url)); - do_action('wp_create_file_in_uploads', $file, $id); // For replication - return $this->finished(); - } elseif ( $width > HEADER_IMAGE_WIDTH ) { - $oitar = $width / HEADER_IMAGE_WIDTH; - $image = wp_crop_image($file, 0, 0, $width, $height, HEADER_IMAGE_WIDTH, $height / $oitar, false, str_replace(basename($file), 'midsize-'.basename($file), $file)); - $image = apply_filters('wp_create_file_in_uploads', $image, $id); // For replication - - $url = str_replace(basename($url), basename($image), $url); - $width = $width / $oitar; - $height = $height / $oitar; - } else { - $oitar = 1; - } - ?> - -
- -
- -

-
- -
- -

- - - - - - - - - - -

- -
-
- 1 ) { - $_POST['x1'] = $_POST['x1'] * $_POST['oitar']; - $_POST['y1'] = $_POST['y1'] * $_POST['oitar']; - $_POST['width'] = $_POST['width'] * $_POST['oitar']; - $_POST['height'] = $_POST['height'] * $_POST['oitar']; - } - - $original = get_attached_file( $_POST['attachment_id'] ); - - $cropped = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); - $cropped = apply_filters('wp_create_file_in_uploads', $cropped, $_POST['attachment_id']); // For replication - - $parent = get_post($_POST['attachment_id']); - $parent_url = $parent->guid; - $url = str_replace(basename($parent_url), basename($cropped), $parent_url); - - // Construct the object array - $object = array( - 'ID' => $_POST['attachment_id'], - 'post_title' => basename($cropped), - 'post_content' => $url, - 'post_mime_type' => 'image/jpeg', - 'guid' => $url - ); - - // Update the attachment - wp_insert_attachment($object, $cropped); - wp_update_attachment_metadata( $_POST['attachment_id'], wp_generate_attachment_metadata( $_POST['attachment_id'], $cropped ) ); - - set_theme_mod('header_image', $url); - - // cleanup - $medium = str_replace(basename($original), 'midsize-'.basename($original), $original); - @unlink( apply_filters( 'wp_delete_file', $medium ) ); - @unlink( apply_filters( 'wp_delete_file', $original ) ); - - return $this->finished(); - } - - /** - * Display last step of custom header image page. - * - * @since unknown - */ - function finished() { - ?> -
-

- -

- -
- step(); - if ( 1 == $step ) - $this->step_1(); - elseif ( 2 == $step ) - $this->step_2(); - elseif ( 3 == $step ) - $this->step_3(); - } - -} -?> +admin_header_callback = $admin_header_callback; + } + + /** + * Setup the hooks for the Custom Header admin page. + * + * @since unknown + */ + function init() { + $page = add_theme_page(__('Custom Header'), __('Custom Header'), 'edit_themes', 'custom-header', array(&$this, 'admin_page')); + + add_action("admin_print_scripts-$page", array(&$this, 'js_includes')); + add_action("admin_print_styles-$page", array(&$this, 'css_includes')); + add_action("admin_head-$page", array(&$this, 'take_action'), 50); + add_action("admin_head-$page", array(&$this, 'js'), 50); + add_action("admin_head-$page", $this->admin_header_callback, 51); + } + + /** + * Get the current step. + * + * @since unknown + * + * @return int Current step + */ + function step() { + if ( ! isset( $_GET['step'] ) ) + return 1; + + $step = (int) $_GET['step']; + if ( $step < 1 || 3 < $step ) + $step = 1; + + return $step; + } + + /** + * Setup the enqueue for the JavaScript files. + * + * @since unknown + */ + function js_includes() { + $step = $this->step(); + + if ( 1 == $step ) + wp_enqueue_script('farbtastic'); + elseif ( 2 == $step ) + wp_enqueue_script('jcrop'); + } + + /** + * Setup the enqueue for the CSS files + * + * @since 2.7 + */ + function css_includes() { + $step = $this->step(); + + if ( 1 == $step ) + wp_enqueue_style('farbtastic'); + elseif ( 2 == $step ) + wp_enqueue_style('jcrop'); + } + + /** + * Execute custom header modification. + * + * @since unknown + */ + function take_action() { + if ( isset( $_POST['textcolor'] ) ) { + check_admin_referer('custom-header'); + if ( 'blank' == $_POST['textcolor'] ) { + set_theme_mod('header_textcolor', 'blank'); + } else { + $color = preg_replace('/[^0-9a-fA-F]/', '', $_POST['textcolor']); + if ( strlen($color) == 6 || strlen($color) == 3 ) + set_theme_mod('header_textcolor', $color); + } + } + if ( isset($_POST['resetheader']) ) { + check_admin_referer('custom-header'); + remove_theme_mods(); + } + } + + /** + * Execute Javascript depending on step. + * + * @since unknown + */ + function js() { + $step = $this->step(); + if ( 1 == $step ) + $this->js_1(); + elseif ( 2 == $step ) + $this->js_2(); + } + + /** + * Display Javascript based on Step 1. + * + * @since unknown + */ + function js_1() { ?> + + + + +
+

+
+ + +
+ +

+

+ +
+

+
+
+ +
+ + + +
+ + + +
+
+

+

%1$d x %2$d pixels will be used as-is.'), HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); ?>

+ +
+
+ + +

+ +

+
+ +
+ + +
+

+

+
+ + +
+
+ false); + $file = wp_handle_upload($_FILES['import'], $overrides); + + if ( isset($file['error']) ) + die( $file['error'] ); + + $url = $file['url']; + $type = $file['type']; + $file = $file['file']; + $filename = basename($file); + + // Construct the object array + $object = array( + 'post_title' => $filename, + 'post_content' => $url, + 'post_mime_type' => $type, + 'guid' => $url); + + // Save the data + $id = wp_insert_attachment($object, $file); + + list($width, $height, $type, $attr) = getimagesize( $file ); + + if ( $width == HEADER_IMAGE_WIDTH && $height == HEADER_IMAGE_HEIGHT ) { + // Add the meta-data + wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); + + set_theme_mod('header_image', esc_url($url)); + do_action('wp_create_file_in_uploads', $file, $id); // For replication + return $this->finished(); + } elseif ( $width > HEADER_IMAGE_WIDTH ) { + $oitar = $width / HEADER_IMAGE_WIDTH; + $image = wp_crop_image($file, 0, 0, $width, $height, HEADER_IMAGE_WIDTH, $height / $oitar, false, str_replace(basename($file), 'midsize-'.basename($file), $file)); + $image = apply_filters('wp_create_file_in_uploads', $image, $id); // For replication + + $url = str_replace(basename($url), basename($image), $url); + $width = $width / $oitar; + $height = $height / $oitar; + } else { + $oitar = 1; + } + ?> + +
+ +
+ +

+
+ +
+ +

+ + + + + + + + + + +

+ +
+
+ 1 ) { + $_POST['x1'] = $_POST['x1'] * $_POST['oitar']; + $_POST['y1'] = $_POST['y1'] * $_POST['oitar']; + $_POST['width'] = $_POST['width'] * $_POST['oitar']; + $_POST['height'] = $_POST['height'] * $_POST['oitar']; + } + + $original = get_attached_file( $_POST['attachment_id'] ); + + $cropped = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); + $cropped = apply_filters('wp_create_file_in_uploads', $cropped, $_POST['attachment_id']); // For replication + + $parent = get_post($_POST['attachment_id']); + $parent_url = $parent->guid; + $url = str_replace(basename($parent_url), basename($cropped), $parent_url); + + // Construct the object array + $object = array( + 'ID' => $_POST['attachment_id'], + 'post_title' => basename($cropped), + 'post_content' => $url, + 'post_mime_type' => 'image/jpeg', + 'guid' => $url + ); + + // Update the attachment + wp_insert_attachment($object, $cropped); + wp_update_attachment_metadata( $_POST['attachment_id'], wp_generate_attachment_metadata( $_POST['attachment_id'], $cropped ) ); + + set_theme_mod('header_image', $url); + + // cleanup + $medium = str_replace(basename($original), 'midsize-'.basename($original), $original); + @unlink( apply_filters( 'wp_delete_file', $medium ) ); + @unlink( apply_filters( 'wp_delete_file', $original ) ); + + return $this->finished(); + } + + /** + * Display last step of custom header image page. + * + * @since unknown + */ + function finished() { + ?> +
+

+ +

+ +
+ step(); + if ( 1 == $step ) + $this->step_1(); + elseif ( 2 == $step ) + $this->step_2(); + elseif ( 3 == $step ) + $this->step_3(); + } + +} +?>