whoami7 - Manager
:
/
home
/
rattkxnv
/
fitwithiit.com
/
wp-content
/
plugins
/
web-stories
/
includes
/
Media
/
Upload File:
files >> //home/rattkxnv/fitwithiit.com/wp-content/plugins/web-stories/includes/Media/Image_Sizes.php
<?php /** * Class Image_Size * * @link https://github.com/googleforcreators/web-stories-wp * * @copyright 2021 Google LLC * @license https://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 */ /** * Copyright 2021 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ declare(strict_types = 1); namespace Google\Web_Stories\Media; use Google\Web_Stories\Service_Base; use WP_Post; /** * Class Image_Sizes */ class Image_Sizes extends Service_Base { /** * The image size for the poster-portrait-src. */ public const POSTER_PORTRAIT_IMAGE_SIZE = 'web-stories-poster-portrait'; /** * The image dimensions for the poster-portrait-src. */ public const POSTER_PORTRAIT_IMAGE_DIMENSIONS = [ 640, 853 ]; /** * Name of size used in media library. */ public const STORY_THUMBNAIL_IMAGE_SIZE = 'web-stories-thumbnail'; /** * The image dimensions for media library thumbnails. */ public const STORY_THUMBNAIL_IMAGE_DIMENSIONS = [ 150, 9999 ]; /** * The image size for the publisher logo. */ public const PUBLISHER_LOGO_IMAGE_SIZE = 'web-stories-publisher-logo'; /** * The image dimensions for the publisher logo. */ public const PUBLISHER_LOGO_IMAGE_DIMENSIONS = [ 96, 96 ]; /** * Init. * * @since 1.0.0 */ public function register(): void { $this->add_image_sizes(); add_filter( 'wp_prepare_attachment_for_js', [ $this, 'wp_prepare_attachment_for_js' ], 10, 2 ); } /** * Filters the attachment data prepared for JavaScript. * * @since 1.0.0 * * @param array|mixed $response Array of prepared attachment data. * @param WP_Post $attachment Attachment object. * @return array|mixed $response; * * @template T * * @phpstan-return ($response is array<T> ? array<T> : mixed) */ public function wp_prepare_attachment_for_js( $response, WP_Post $attachment ) { if ( ! \is_array( $response ) ) { return $response; } // See https://github.com/WordPress/wordpress-develop/blob/d28766f8f2ecf2be02c2520cdf0cc3b51deb9e1b/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php#L753-L791 . $response['media_details'] = wp_get_attachment_metadata( $attachment->ID ); // Ensure empty details is an empty object. if ( empty( $response['media_details'] ) ) { $response['media_details'] = []; } elseif ( ! empty( $response['media_details']['sizes'] ) ) { foreach ( $response['media_details']['sizes'] as $size => &$size_data ) { if ( isset( $size_data['mime-type'] ) ) { $size_data['mime_type'] = $size_data['mime-type']; unset( $size_data['mime-type'] ); } // Use the same method image_downsize() does. $image = wp_get_attachment_image_src( $attachment->ID, $size ); if ( ! $image ) { continue; } [ $image_src ] = $image; $size_data['source_url'] = $image_src; } $img_src = wp_get_attachment_image_src( $attachment->ID, 'full' ); if ( $img_src ) { [ $src, $width, $height ] = $img_src; $response['media_details']['sizes']['full'] = [ 'file' => wp_basename( $src ), 'width' => $width, 'height' => $height, 'mime_type' => $attachment->post_mime_type, 'source_url' => $src, ]; } } else { $response['media_details']['sizes'] = []; } return $response; } /** * Add image sizes. * * @since 1.10.0 * * @link https://amp.dev/documentation/components/amp-story/#poster-guidelines-for-poster-portrait-src-poster-landscape-src-and-poster-square-src. */ protected function add_image_sizes(): void { // Used for amp-story[poster-portrait-src]: The story poster in portrait format (3x4 aspect ratio). add_image_size( self::POSTER_PORTRAIT_IMAGE_SIZE, self::POSTER_PORTRAIT_IMAGE_DIMENSIONS[0], self::POSTER_PORTRAIT_IMAGE_DIMENSIONS[1], true ); // As per https://amp.dev/documentation/components/amp-story/#publisher-logo-src-guidelines. add_image_size( self::PUBLISHER_LOGO_IMAGE_SIZE, self::PUBLISHER_LOGO_IMAGE_DIMENSIONS[0], self::PUBLISHER_LOGO_IMAGE_DIMENSIONS[1], true ); // Used in the editor. add_image_size( self::STORY_THUMBNAIL_IMAGE_SIZE, self::STORY_THUMBNAIL_IMAGE_DIMENSIONS[0], self::STORY_THUMBNAIL_IMAGE_DIMENSIONS[1], false ); } }
Copyright ©2021 || Defacer Indonesia