HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //proc/self/cwd/wp-content/plugins/crop-thumbnails/functions/helper.php
<?php
namespace crop_thumbnails;

/**
 * Do not use functions of this class directly, instead use
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getUploadDir()
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getPostTypes()
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getImageSizes()
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getOptionsKey()
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getOptions()
 * $GLOBALS['CROP_THUMBNAILS_HELPER']->getNonceBase()
 * 
 * This class is for overriding settings in php-tests - therefore the functions cant be static :(
 */
class CropThumbnailsHelper {
	protected static $defaultSizes = ['thumbnail','medium','medium_large','large'];
	protected static $optionsKey = 'crop-post-thumbs';

	public function getUploadDir() {
		$upload_dir = wp_upload_dir();
		return $upload_dir['basedir'].DIRECTORY_SEPARATOR.'tmp';
	}


	/**
	 * get the post types and delete some prebuild post types that we dont need
	 */
	public function getPostTypes() {
		$post_types = get_post_types([],'objects');
		unset($post_types['nav_menu_item']);
		unset($post_types['revision']);
		unset($post_types['attachment']);
		return $post_types;
	}


	/**
	 * <pre>
	 * Creates an array of all image sizes.
	 * @return {array} array of all image sizes
	 *                       array[<sizename>]['height'] = int
	 *                       array[<sizename>]['width'] = int
	 *                       array[<sizename>]['crop'] = boolean
	 *                       array[<sizename>]['name'] = string --> readable name if provided in "image_size_names_choose", else sizename
	 *                       array[<sizename>]['id'] = string --> the sizename
	 * </pre>
	 */
	public function getImageSizes() {
		global $_wp_additional_image_sizes;//array with the available image sizes
		$image_size_names = array_flip(get_intermediate_image_sizes());
		foreach($image_size_names as $key=>$value) {
			$image_size_names[$key] = $key;
		}
		
		$tmp_sizes = apply_filters( 'image_size_names_choose', $image_size_names );
		$image_size_names = array_merge($image_size_names,$tmp_sizes);
		
		$sizes = [];
		foreach( $image_size_names as $sizeId=>$theName ) {

			if ( in_array( $sizeId, self::$defaultSizes ) ) {
				$sizes[ $sizeId ]['width']  = intval(get_option( $sizeId . '_size_w' ));
				$sizes[ $sizeId ]['height'] = intval(get_option( $sizeId . '_size_h' ));
				$sizes[ $sizeId ]['crop']   = (bool) get_option( $sizeId . '_crop' );
			} else {
				if(!empty($_wp_additional_image_sizes[ $sizeId ])) {
					$sizes[ $sizeId ] = [
						'width'  => intval($_wp_additional_image_sizes[ $sizeId ]['width']),
						'height' => intval($_wp_additional_image_sizes[ $sizeId ]['height']),
						'crop'   => (bool) $_wp_additional_image_sizes[ $sizeId ]['crop']
					];
				}
			}
			$sizes[ $sizeId ]['name'] = $theName;
			$sizes[ $sizeId ]['id'] = $sizeId;
		}
		$sizes = apply_filters('crop_thumbnails_image_sizes',$sizes);
		return $sizes;
	}

	public function getOptionsKey() {
		return self::$optionsKey;
	}

	public function getOptions() {
		return get_option(self::$optionsKey);
	}

	public function getNonceBase() {
		return 'crop-post-thumbnails-nonce-base';
	}
}
$GLOBALS['CROP_THUMBNAILS_HELPER'] = new CropThumbnailsHelper();