PluginProbe
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF / 1.9.4
Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF v1.9.4
2.3.4 2.3.3 2.3.2 2.3.1 2.3.0 2.2.9 2.2.8 trunk 1.10 1.3.3 1.3.4 1.3.5 1.3.5.1 1.3.5.2 1.3.6 1.3.6.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.5 All 103 releases
imagify / inc / admin / media.php

media.php in Imagify Image Optimization: Optimize Images | Compress & Convert to WebP/AVIF 1.9.4, at inc/admin/media.php

99 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined( 'ABSPATH' ) || die( 'Cheatin’ uh?' );
3
4 add_filter( 'attachment_fields_to_edit', '_imagify_attachment_fields_to_edit', IMAGIFY_INT_MAX, 2 );
5 /**
6 * Add "Imagify" column in the Media Uploader
7 *
8 * @since 1.2
9 * @author Jonathan Buttigieg
10 *
11 * @param array $form_fields An array of attachment form fields.
12 * @param object $post The WP_Post attachment object.
13 * @return array
14 */
15 function _imagify_attachment_fields_to_edit( $form_fields, $post ) {
16 global $pagenow;
17
18 if ( 'post.php' === $pagenow ) {
19 return $form_fields;
20 }
21
22 if ( ! imagify_get_context( 'wp' )->current_user_can( 'manual-optimize', $post->ID ) ) {
23 return $form_fields;
24 }
25
26 $process = imagify_get_optimization_process( $post->ID, 'wp' );
27
28 $form_fields['imagify'] = array(
29 'label' => 'Imagify',
30 'input' => 'html',
31 'html' => get_imagify_media_column_content( $process ),
32 'show_in_edit' => true,
33 'show_in_modal' => true,
34 );
35
36 return $form_fields;
37 }
38
39 add_filter( 'media_row_actions', '_imagify_add_actions_to_media_list_row', IMAGIFY_INT_MAX, 2 );
40 /**
41 * Add "Compare Original VS Optimized" link to the media row action
42 *
43 * @since 1.4.3
44 * @author Geoffrey Crofte
45 * @param array $actions An array of action links for each attachment.
46 * Default 'Edit', 'Delete Permanently', 'View'.
47 * @param object $post WP_Post object for the current attachment.
48 * @return array
49 */
50 function _imagify_add_actions_to_media_list_row( $actions, $post ) {
51 if ( ! imagify_get_context( 'wp' )->current_user_can( 'manual-optimize', $post->ID ) ) {
52 return $actions;
53 }
54
55 $process = imagify_get_optimization_process( $post->ID, 'wp' );
56
57 if ( ! $process->is_valid() ) {
58 return $actions;
59 }
60
61 $media = $process->get_media();
62
63 // If this media is not an image, do nothing.
64 if ( ! $media->is_supported() || ! $media->is_image() ) {
65 return $actions;
66 }
67
68 $data = $process->get_data();
69
70 // If Imagify license not valid, or image is not optimized, do nothing.
71 if ( ! Imagify_Requirements::is_api_key_valid() || ! $data->is_optimized() ) {
72 return $actions;
73 }
74
75 // If no backup, do nothing.
76 if ( ! $media->has_backup() ) {
77 return $actions;
78 }
79
80 $dimensions = $media->get_dimensions();
81
82 // If full image is too small. See get_imagify_localize_script_translations().
83 if ( $dimensions['width'] < 360 ) {
84 return $actions;
85 }
86
87 // Else, add action link for comparison (JS triggered).
88 $actions['imagify-compare'] = Imagify_Views::get_instance()->get_template( 'button/compare-images', [
89 'url' => get_edit_post_link( $media->get_id() ) . '#imagify-compare',
90 'backup_url' => $media->get_backup_url(),
91 'original_url' => $media->get_original_url(),
92 'media_id' => $media->get_id(),
93 'width' => $dimensions['width'],
94 'height' => $dimensions['height'],
95 ] );
96
97 return $actions;
98 }
99