Changeset 20806
- Timestamp:
- 05/16/2012 05:47:55 PM (12 years ago)
- Location:
- trunk/wp-admin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/wp-admin/custom-header.php
r20769 r20806 785 785 <input type="hidden" name="oitar" id="oitar" value="<?php echo esc_attr( $oitar ); ?>" /> 786 786 <?php if ( empty( $_POST ) && isset( $_GET['file'] ) ) { ?> 787 <input type="hidden" name=" new-attachment" value="true" />787 <input type="hidden" name="create-new-attachment" value="true" /> 788 788 <?php } ?> 789 789 <?php wp_nonce_field( 'custom-header-crop-image' ) ?> 790 790 791 <?php submit_button( __( 'Crop and Publish' ) ); ?> 791 <p class="submit"><?php 792 submit_button( __( 'Crop and Publish' ), 'primary', 'submit', false ); 793 if ( isset( $oitar ) && 1 == $oitar ) 794 submit_button( __( 'Skip Cropping, Use Image as Is' ), 'primary', 'skip-cropping', false ); 795 ?> 792 796 </p> 793 797 </form> … … 868 872 $dst_width = get_theme_support( 'custom-header', 'width' ); 869 873 870 $cropped = wp_crop_image( $attachment_id, (int) $_POST['x1'], (int) $_POST['y1'], (int) $_POST['width'], (int) $_POST['height'], $dst_width, $dst_height ); 874 if ( empty( $_POST['skip-cropping'] ) ) 875 $cropped = wp_crop_image( $attachment_id, (int) $_POST['x1'], (int) $_POST['y1'], (int) $_POST['width'], (int) $_POST['height'], $dst_width, $dst_height ); 876 elseif ( ! empty( $_POST['create-new-attachment'] ) ) 877 $cropped = _copy_image_file( $attachment_id ); 878 else 879 $cropped = get_attached_file( $attachment_id ); 880 871 881 if ( ! $cropped || is_wp_error( $cropped ) ) 872 882 wp_die( __( 'Image could not be processed. Please go back and try again.' ), __( 'Image Processing Error' ) ); 873 883 874 884 $cropped = apply_filters('wp_create_file_in_uploads', $cropped, $attachment_id); // For replication 875 $is_cropped = ( get_attached_file( $attachment_id ) != $cropped );876 885 877 886 $parent = get_post($attachment_id); … … 891 900 'context' => 'custom-header' 892 901 ); 893 if ( ! empty( $_POST[' new-attachment'] ) )902 if ( ! empty( $_POST['create-new-attachment'] ) ) 894 903 unset( $object['ID'] ); 895 904 … … 914 923 if ( file_exists( $medium ) ) 915 924 @unlink( apply_filters( 'wp_delete_file', $medium ) ); 916 if ( empty( $_POST[' new-attachment'] ) && $is_cropped)925 if ( empty( $_POST['create-new-attachment'] ) && empty( $_POST['skip-cropping'] ) ) 917 926 @unlink( apply_filters( 'wp_delete_file', $original ) ); 918 927 -
trunk/wp-admin/includes/image.php
r20787 r20806 45 45 */ 46 46 function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) { 47 if ( 0 == $src_x && 0 == $src_y && $src_w == $dst_w && $src_h == $dst_h )48 return ( is_numeric( $src ) ) ? get_attached_file( $src ) : $src;49 50 47 if ( is_numeric( $src ) ) { // Handle int as attachment ID 51 48 $src_file = get_attached_file( $src ); … … 367 364 } 368 365 369 function load_image_to_edit($post_id, $mime_type, $size = 'full') { 370 $filepath = get_attached_file($post_id); 371 372 if ( $filepath && file_exists($filepath) ) { 373 if ( 'full' != $size && ( $data = image_get_intermediate_size($post_id, $size) ) ) { 374 $filepath = apply_filters('load_image_to_edit_filesystempath', path_join( dirname($filepath), $data['file'] ), $post_id, $size); 375 } 376 } elseif ( function_exists('fopen') && function_exists('ini_get') && true == ini_get('allow_url_fopen') ) { 377 $filepath = apply_filters('load_image_to_edit_attachmenturl', wp_get_attachment_url($post_id) , $post_id, $size); 378 } 379 380 $filepath = apply_filters('load_image_to_edit_path', $filepath, $post_id, $size);381 if ( empty( $filepath) )366 /** 367 * Load an image resource for editing. 368 * 369 * @since 2.9.0 370 * 371 * @param string $attachment_id Attachment ID. 372 * @param string $mime_type Image mime type. 373 * @param string $size Optional. Image size, defaults to 'full'. 374 * @return resource|false The resulting image resource on success, false on failure. 375 */ 376 function load_image_to_edit( $attachment_id, $mime_type, $size = 'full' ) { 377 $filepath = _load_image_to_edit_path( $attachment_id, $size ); 378 if ( empty( $filepath ) ) 382 379 return false; 383 380 … … 397 394 } 398 395 if ( is_resource($image) ) { 399 $image = apply_filters('load_image_to_edit', $image, $ post_id, $size);396 $image = apply_filters('load_image_to_edit', $image, $attachment_id, $size); 400 397 if ( function_exists('imagealphablending') && function_exists('imagesavealpha') ) { 401 398 imagealphablending($image, false); … … 405 402 return $image; 406 403 } 404 405 /** 406 * Retrieve the path or url of an attachemnt's attached file. 407 * 408 * If the attached file is not present on the local filesystem (usually due to replication plugins), 409 * then the url of the file is returned if url fopen is supported. 410 * 411 * @since 3.4.0 412 * @access private 413 * 414 * @param string $attachment_id Attachment ID. 415 * @param string $size Optional. Image size, defaults to 'full'. 416 * @return string|false File path or url on success, false on failure. 417 */ 418 function _load_image_to_edit_path( $attachment_id, $size = 'full' ) { 419 $filepath = get_attached_file( $attachment_id ); 420 421 if ( $filepath && file_exists( $filepath ) ) { 422 if ( 'full' != $size && ( $data = image_get_intermediate_size( $attachment_id, $size ) ) ) { 423 $filepath = apply_filters( 'load_image_to_edit_filesystempath', path_join( dirname( $filepath ), $data['file'] ), $attachment_id, $size ); 424 } 425 } elseif ( function_exists( 'fopen' ) && function_exists( 'ini_get' ) && true == ini_get( 'allow_url_fopen' ) ) { 426 $filepath = apply_filters( 'load_image_to_edit_attachmenturl', wp_get_attachment_url( $attachment_id ), $attachment_id, $size ); 427 } 428 429 return apply_filters( 'load_image_to_edit_path', $filepath, $attachment_id, $size ); 430 } 431 432 /** 433 * Copy an existing image file. 434 * 435 * @since 3.4.0 436 * @access private 437 * 438 * @param string $attachment_id Attachment ID. 439 * @return string|false New file path on success, false on failure. 440 */ 441 function _copy_image_file( $attachment_id ) { 442 debug_log( 'copyin' ); 443 $dst_file = $src_file = get_attached_file( $attachment_id ); 444 if ( ! file_exists( $src_file ) ) 445 $src_file = _load_image_to_edit_path( $attachment_id ); 446 447 if ( $src_file ) { 448 $dst_file = str_replace( basename( $dst_file ), 'copy-' . basename( $dst_file ), $dst_file ); 449 $dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) ); 450 if ( ! @copy( $src_file, $dst_file ) ) 451 $dst_file = false; 452 } else { 453 $dst_file = false; 454 } 455 456 return $dst_file; 457 }
Note: See TracChangeset
for help on using the changeset viewer.