HEX
Server: LiteSpeed
System: Linux melbournecleaninggroup 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: www-data (33)
PHP: 7.3.33-1+focal
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,
Upload Files
File: /var/www/html/wp-content/plugins/brizy/editor/asset/optimize/shortpixel-optimizer.php
<?php

class  Brizy_Editor_Asset_Optimize_ShortpixelOptimizer implements Brizy_Editor_Asset_Optimize_OptimizerInterface {

	const ID = 'shortpixel';

	/**
	 * @var string
	 */
	private $apiKey;

	/**
	 * @var int
	 */
	private $lossy = 1;

	/**
	 * Brizy_Editor_Asset_Optimize_ShortpixelOptimizer constructor.
	 *
	 * @param $settings
	 *
	 * @throws Exception
	 */
	public function __construct( $settings ) {

		if ( ! isset( $settings['API_KEY'] ) ) {
			throw new Exception( 'Invalid Shortpixel config' );
		}
		$this->apiKey = $settings['API_KEY'];
		$this->lossy  = isset( $settings['lossy'] ) ? (int) $settings['lossy'] : 1;
	}

	public function validateConfig() {

		if ( $this->apiKey == '' || is_null( $this->apiKey ) ) {
			return false;
		}

		$logo_path = str_replace( '/', DIRECTORY_SEPARATOR, BRIZY_PLUGIN_PATH . "/admin/static/img/" );
		$source    = $logo_path . "brizy.png";

		$urlBuilder = new Brizy_Editor_UrlBuilder( Brizy_Editor_Project::get() );
		$target     = $urlBuilder->brizy_upload_path( "optimized-brizy.png" );

		$result = $this->optimize( $source, $target );

		@unlink( $target );

		return $result;
	}

	/**
	 * @param $sourcePath
	 * @param $targetPath
	 *
	 * @return mixed
	 */
	public function optimize( $sourcePath, $targetPath ) {

		if ( $this->apiKey == '' || is_null( $this->apiKey ) ) {
			return false;
		}

		ShortPixel\setKey( $this->apiKey );
		$result = ShortPixel\fromFile( $sourcePath )->optimize( $this->lossy )->wait( 100 )->toFiles( dirname( $targetPath ) );

		if ( count( $result->succeeded ) == 1 ) {
			return true;
		}

		return false;
	}

	/**
	 * @return string
	 */
	public static function getId() {
		return self::ID;
	}
}