This commit is contained in:
root@pico committed 2015-05-01 21:20:47 +02:00
1 parent 70d2335bba
commit 7428b67da5
1086 files changed
+94145 -59082

No files matched your search

+68 -35
View File
@@ -6,6 +6,13 @@
* @subpackage Administration
*/
/**
* Loads the WP image-editing interface.
*
* @param int $post_id Post ID.
* @param bool|object $msg Optional. Message to display for image editor updates or errors.
* Default false.
*/
function wp_image_editor($post_id, $msg = false) {
$nonce = wp_create_nonce("image_editor-$post_id");
$meta = wp_get_attachment_metadata($post_id);
@@ -326,12 +333,31 @@ function wp_save_image_file( $filename, $image, $mime_type, $post_id ) {
}
}
/**
* Image preview ratio. Internal use only.
*
* @since 2.9.0
*
* @ignore
* @param int $w Image width in pixels.
* @param int $h Image height in pixels.
* @return float|int Image preview ratio.
*/
function _image_get_preview_ratio($w, $h) {
$max = max($w, $h);
return $max > 400 ? (400 / $max) : 1;
}
// @TODO: Returns GD resource, but is NOT public
/**
* Returns an image resource. Internal use only.
*
* @since 2.9.0
*
* @ignore
* @param resource $img Image resource.
* @param float|int $angle Image rotation angle, in degrees.
* @return resource|false GD image resource, false otherwise.
*/
function _rotate_image_resource($img, $angle) {
_deprecated_function( __FUNCTION__, '3.5', __( 'Use WP_Image_Editor::rotate' ) );
if ( function_exists('imagerotate') ) {
@@ -345,14 +371,15 @@ function _rotate_image_resource($img, $angle) {
}
/**
* @TODO: Only used within image_edit_apply_changes
* and receives/returns GD Resource.
* Consider removal.
* Flips an image resource. Internal use only.
*
* @param GD_Resource $img
* @param boolean $horz
* @param boolean $vert
* @return GD_Resource
* @since 2.9.0
*
* @ignore
* @param resource $img Image resource.
* @param bool $horz Whether to flip horizontally.
* @param bool $vert Whether to flip vertically.
* @return resource (maybe) flipped image resource.
*/
function _flip_image_resource($img, $horz, $vert) {
_deprecated_function( __FUNCTION__, '3.5', __( 'Use WP_Image_Editor::flip' ) );
@@ -374,16 +401,17 @@ function _flip_image_resource($img, $horz, $vert) {
}
/**
* @TODO: Only used within image_edit_apply_changes
* and receives/returns GD Resource.
* Consider removal.
* Crops an image resource. Internal use only.
*
* @param GD_Resource $img
* @param float $x
* @param float $y
* @param float $w
* @param float $h
* @return GD_Resource
* @since 2.9.0
*
* @ignore
* @param resource $img Image resource.
* @param float $x Source point x-coordinate.
* @param float $y Source point y-cooredinate.
* @param float $w Source width.
* @param float $h Source height.
* @return resource (maybe) cropped image resource.
*/
function _crop_image_resource($img, $x, $y, $w, $h) {
$dst = wp_imagecreatetruecolor($w, $h);
@@ -399,9 +427,11 @@ function _crop_image_resource($img, $x, $y, $w, $h) {
/**
* Performs group of changes on Editor specified.
*
* @param WP_Image_Editor $image
* @param type $changes
* @return WP_Image_Editor
* @since 2.9.0
*
* @param WP_Image_Editor $image {@see WP_Image_Editor} instance.
* @param array $changes Array of change operations.
* @return WP_Image_Editor {@see WP_Image_Editor} instance with changes applied.
*/
function image_edit_apply_changes( $image, $changes ) {
if ( is_resource( $image ) )
@@ -431,7 +461,7 @@ function image_edit_apply_changes( $image, $changes ) {
// Combine operations.
if ( count($changes) > 1 ) {
$filtered = array($changes[0]);
for ( $i = 0, $j = 1; $j < count($changes); $j++ ) {
for ( $i = 0, $j = 1, $c = count( $changes ); $j < $c; $j++ ) {
$combined = false;
if ( $filtered[$i]->type == $changes[$j]->type ) {
switch ( $filtered[$i]->type ) {
@@ -554,10 +584,18 @@ function stream_preview_image( $post_id ) {
return wp_stream_image( $img, $post->post_mime_type, $post_id );
}
/**
* Restores the metadata for a given attachment.
*
* @since 2.9.0
*
* @param int $post_id Attachment post ID.
* @return stdClass Image restoration message object.
*/
function wp_restore_image($post_id) {
$meta = wp_get_attachment_metadata($post_id);
$file = get_attached_file($post_id);
$backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true );
$backup_sizes = $old_backup_sizes = get_post_meta( $post_id, '_wp_attachment_backup_sizes', true );
$restored = false;
$msg = new stdClass;
@@ -578,10 +616,7 @@ function wp_restore_image($post_id) {
// Delete only if it's edited image.
if ( preg_match('/-e[0-9]{13}\./', $parts['basename']) ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters( 'wp_delete_file', $file );
@unlink($delpath);
wp_delete_file( $file );
}
} elseif ( isset( $meta['width'], $meta['height'] ) ) {
$backup_sizes["full-$suffix"] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $parts['basename']);
@@ -604,9 +639,8 @@ function wp_restore_image($post_id) {
// Delete only if it's edited image
if ( preg_match('/-e[0-9]{13}-/', $meta['sizes'][$default_size]['file']) ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters( 'wp_delete_file', path_join($parts['dirname'], $meta['sizes'][$default_size]['file']) );
@unlink($delpath);
$delete_file = path_join( $parts['dirname'], $meta['sizes'][$default_size]['file'] );
wp_delete_file( $delete_file );
}
} else {
$backup_sizes["$default_size-{$suffix}"] = $meta['sizes'][$default_size];
@@ -619,7 +653,9 @@ function wp_restore_image($post_id) {
}
}
if ( !wp_update_attachment_metadata($post_id, $meta) || !update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes) ) {
if ( ! wp_update_attachment_metadata( $post_id, $meta ) ||
( $old_backup_sizes !== $backup_sizes && ! update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes ) ) ) {
$msg->error = __('Cannot save image metadata.');
return $msg;
}
@@ -738,7 +774,7 @@ function wp_save_image( $post_id ) {
if ( $tag )
$backup_sizes[$tag] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $path_parts['basename']);
$success = update_attached_file( $post_id, $new_path );
$success = ( $path === $new_path ) || update_attached_file( $post_id, $new_path );
$meta['file'] = _wp_relative_upload_path( $new_path );
@@ -817,10 +853,7 @@ function wp_save_image( $post_id ) {
}
if ( $delete ) {
/** This filter is documented in wp-admin/custom-header.php */
$delpath = apply_filters( 'wp_delete_file', $new_path );
@unlink( $delpath );
wp_delete_file( $new_path );
}
$return->msg = esc_js( __('Image saved') );