107 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
namespace ShortPixel\Model\Image;
 | 
						|
 | 
						|
if ( ! defined( 'ABSPATH' ) ) {
 | 
						|
 exit; // Exit if accessed directly.
 | 
						|
}
 | 
						|
 | 
						|
use ShortPixel\ShortPixelLogger\ShortPixelLogger as Log;
 | 
						|
 | 
						|
class ImageThumbnailMeta
 | 
						|
{
 | 
						|
	/** @var int */
 | 
						|
	public $databaseID = null;
 | 
						|
	/** @var int */
 | 
						|
  public $status = 0;
 | 
						|
	/** @var int */
 | 
						|
  public $compressionType;
 | 
						|
	/** @var int */
 | 
						|
  public $compressedSize;
 | 
						|
	/** @var int */
 | 
						|
  public $originalSize;
 | 
						|
//  public $improvement;
 | 
						|
 | 
						|
	/** @var boolean */
 | 
						|
  public $did_keepExif  = false;
 | 
						|
 | 
						|
	/** @var boolean */
 | 
						|
  public $did_cmyk2rgb = false;
 | 
						|
 | 
						|
	/** @var int */
 | 
						|
  public $resize;
 | 
						|
	/** @var int */
 | 
						|
  public $resizeWidth;
 | 
						|
	/** @var int */
 | 
						|
  public $resizeHeight;
 | 
						|
	/** @var int */
 | 
						|
	public $resizeType;
 | 
						|
	/** @var int  */
 | 
						|
  public $originalWidth;
 | 
						|
	/** @var int */
 | 
						|
  public $originalHeight;
 | 
						|
 | 
						|
  public $tsAdded;
 | 
						|
  public $tsOptimized;
 | 
						|
  public $webp;
 | 
						|
  public $avif;
 | 
						|
 | 
						|
  public $file; // **Only for unlisted images. This defines an unlisted image */
 | 
						|
 | 
						|
  // Only for customImageModel! Exception to prevent having to create a whole class. Second var here, warrants a subclass.
 | 
						|
  public $customImprovement;
 | 
						|
 | 
						|
 | 
						|
  public function __construct()
 | 
						|
  {
 | 
						|
     $this->tsAdded = time(); // default
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  /** Load data from basic class to prevent issues when class definitions changes over time */
 | 
						|
  public function fromClass($object)
 | 
						|
  {
 | 
						|
 | 
						|
     foreach($object as $property => $value)
 | 
						|
     {
 | 
						|
        if ($property == 'customImprovement')
 | 
						|
        {  continue;  }
 | 
						|
 | 
						|
 | 
						|
        if (property_exists($this, $property))
 | 
						|
        {
 | 
						|
          $this->$property = $value;
 | 
						|
        }
 | 
						|
     }
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  /** Save data as basic class to prevent issues when class definitions changes over time */
 | 
						|
  public function toClass()
 | 
						|
  {
 | 
						|
     $class = new \stdClass;
 | 
						|
     $vars = get_object_vars($this);
 | 
						|
 | 
						|
     foreach($vars as $property => $value) // only used by media library.
 | 
						|
     {
 | 
						|
       if ($property == 'customImprovement')
 | 
						|
       {  continue;  }
 | 
						|
 | 
						|
			 if ($property == 'convertMeta' && is_null($this->convertMeta))
 | 
						|
			 {
 | 
						|
				 	continue;
 | 
						|
			 }
 | 
						|
			 elseif ($property == 'convertMeta') {
 | 
						|
			 		$class->$property = $this->$property->toClass();
 | 
						|
					continue;
 | 
						|
			 }
 | 
						|
      // if (is_null($value)) // don't save default / values without init.
 | 
						|
       //   continue;
 | 
						|
 | 
						|
 | 
						|
       $class->$property = $this->$property;
 | 
						|
     }
 | 
						|
 | 
						|
     return $class;
 | 
						|
  }
 | 
						|
}
 |