From 861bd9122e6d9ee710df2b6fc0a1222a8a8965cf Mon Sep 17 00:00:00 2001 From: donncha Date: Thu, 4 Jan 2007 13:20:38 +0000 Subject: WP Merge to 4674 git-svn-id: http://svn.automattic.com/wordpress-mu/trunk@830 7be80a69-a1ef-0310-a953-fb0f7c49ff36 --- wp-admin/custom-header.php | 324 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 wp-admin/custom-header.php (limited to 'wp-admin/custom-header.php') diff --git a/wp-admin/custom-header.php b/wp-admin/custom-header.php new file mode 100644 index 0000000..8bdd83d --- /dev/null +++ b/wp-admin/custom-header.php @@ -0,0 +1,324 @@ +admin_header_callback = $admin_header_callback; + } + + function init() { + $page = add_theme_page(__('Custom Image Header'), __('Custom Image Header'), 'edit_themes', 'custom-header', array(&$this, 'admin_page')); + + add_action("admin_print_scripts-$page", array(&$this, 'js_includes')); + add_action("admin_head-$page", array(&$this, 'js'), 50); + add_action("admin_head-$page", $this->admin_header_callback, 51); + } + + function js_includes() { + wp_enqueue_script('cropper'); + wp_enqueue_script('colorpicker'); + } + + function js() { + + if ( isset( $_POST['textcolor'] ) ) { + 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']) ) + remove_theme_mods(); + ?> + + +
+

+
+ + +
+

+

+ +
+

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

+

%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']; + $file = $file['file']; + $filename = basename($file); + + // Construct the object array + $object = array( + 'post_title' => $filename, + 'post_content' => $url, + 'post_mime_type' => 'import', + 'guid' => $url); + + // Save the data + $id = wp_insert_attachment($object, $file); + + $upload = array('file' => $file, 'id' => $id); + + list($width, $height, $type, $attr) = getimagesize( $file ); + + if ( $width == HEADER_IMAGE_WIDTH && $height == HEADER_IMAGE_HEIGHT ) { + set_theme_mod('header_image', $url); + $header = apply_filters('wp_create_file_in_uploads', $header); // 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); // 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']; + } + + $header = wp_crop_image($_POST['attachment_id'], $_POST['x1'], $_POST['y1'], $_POST['width'], $_POST['height'], HEADER_IMAGE_WIDTH, HEADER_IMAGE_HEIGHT); + $header = apply_filters('wp_create_file_in_uploads', $header); // For replication + + $parent = get_post($_POST['attachment_id']); + + $parent_url = $parent->guid; + + $url = str_replace(basename($parent_url), basename($header), $parent_url); + + set_theme_mod('header_image', $url); + + // cleanup + $file = get_attached_file( $_POST['attachment_id'] ); + $medium = str_replace(basename($file), 'midsize-'.basename($file), $file); + @unlink( $medium ); + apply_filters( 'wp_delete_file', $medium ); + wp_delete_attachment( $_POST['attachment_id'] ); + + return $this->finished(); + } + + function finished() { + ?> +
+

+ +

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