PluginProbe
Admin and Site Enhancements (ASE) / 7.9.7
Admin and Site Enhancements (ASE) v7.9.7
9.1.1 9.1.0 9.0.2 9.0.1 9.0.0 8.9.2 8.9.1 8.9.0 8.8.8 8.8.7 8.8.6 8.8.5 8.8.4 8.8.3 8.8.2 8.8.1 8.8.0 8.7.3 8.7.2 8.7.1 8.2.1 8.2.2 8.2.3 8.3.0 8.3.1 All 273 releases
admin-site-enhancements / classes / class-image-sizes-panel.php
class-image-sizes-panel.php
79 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace ASENHA\Classes;
4
5 /**
6 * Class for Image Sizes Panel module
7 *
8 * @since 6.9.5
9 */
10 class Image_Sizes_Panel {
11 /**
12 * Add image sizes meta box in image view/edit screen
13 *
14 * @since 6.3.0
15 */
16 public function add_image_sizes_meta_box() {
17 global $post;
18 // Only add meta box if the attachment is an image
19 if ( is_object( $post ) && property_exists( $post, 'post_mime_type' ) && false !== strpos( $post->post_mime_type, 'image' ) ) {
20 add_meta_box(
21 'image_sizes',
22 'Image Sizes',
23 [$this, 'image_sizes_table'],
24 'attachment',
25 'side'
26 );
27 }
28 }
29
30 /**
31 * Output table of image sizes
32 *
33 * @link https://plugins.trac.wordpress.org/browser/image-sizes-panel/tags/0.4/admin/admin.php
34 * @since 6.3.0
35 */
36 public function image_sizes_table( $post ) {
37 global $_wp_additional_image_sizes;
38 $image_sizes = get_intermediate_image_sizes();
39 $metadata = wp_get_attachment_metadata( $post->ID );
40 $generated_sizes = array();
41 // Merge defined image sizes with generated image sizes
42 if ( isset( $metadata['sizes'] ) && count( $metadata['sizes'] ) > 0 ) {
43 $generated_sizes = array_keys( $metadata['sizes'] );
44 $image_sizes = array_unique( array_merge( $image_sizes, $generated_sizes ) );
45 }
46 $image_sizes[] = 'full';
47 $full = wp_get_attachment_image_src( $post->ID, 'full' );
48 sort( $image_sizes );
49 if ( count( $image_sizes ) > 0 ) {
50 echo '<table>';
51 foreach ( $image_sizes as $size ) {
52 $src = wp_get_attachment_image_src( $post->ID, $size );
53 if ( isset( $metadata['sizes'][$size] ) ) {
54 $width = $metadata['sizes'][$size]['width'];
55 $height = $metadata['sizes'][$size]['height'];
56 } else {
57 if ( 'full' == $size ) {
58 $width = $full[1];
59 $height = $full[2];
60 } else {
61 $width = $src[1];
62 $height = $src[2];
63 }
64 }
65 if ( in_array( $size, $generated_sizes ) || 'full' == $size ) {
66 echo '<tr id="image-sizes-panel-' . sanitize_html_class( $size ) . '" class="image-size-row">';
67 echo '<td class="size"><span class="name"><a href="' . esc_url( $src[0] ) . '" target="_blank" class="image-url">' . esc_html( $size ) . '</a></span></td>';
68 echo '<td class="dim">' . esc_html( $width ) . ' &times ' . esc_html( $height ) . '</td>';
69 echo '</tr>';
70 }
71 }
72 echo '</table>';
73 } else {
74 echo '<p>No image sizes</p>';
75 }
76 }
77
78 }
79