Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux pod-100823:apache2_74:v0.5.7 5.4.0-1138-gcp #147~18.04.1-Ubuntu SMP Mon Oct 7 21:46:26 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33.7
Disable Function : apache_child_terminate,apache_get_modules,apache_get_version,apache_getenv,apache_note,apache_setenv,disk_free_space,disk_total_space,diskfreespace,dl,exec,fastcgi_finish_request,link,opcache_compile_file,opcache_get_configuration,opcache_invalidate,opcache_is_script_cached,opcache_reset,passthru,pclose,pcntl_exec,popen,posix_getpid,posix_getppid,posix_getpwuid,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_uname,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,realpath_cache_get,shell_exec,show_source,symlink,system
Directory :  /nas/content/live/attorneyexperi/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /nas/content/live/attorneyexperi/wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/Smush.php
<?php

namespace WP_Rocket\ThirdParty\Plugins;

use Smush\Core\Settings;
use WP_Rocket\Admin\Options;
use WP_Rocket\Admin\Options_Data;
use WP_Rocket\Event_Management\Subscriber_Interface;

/**
 * Subscriber for compatibility with Smush
 *
 * @since  3.4.2
 * @author Soponar Cristina
 */
class Smush implements Subscriber_Interface {
	/**
	 * WP Options API instance
	 *
	 * @var Options
	 */
	private $options_api;

	/**
	 * Options instance
	 *
	 * @var Options_Data
	 */
	private $options;

	/**
	 * Subscribed events for Smush.
	 *
	 * @since  3.4.2
	 * @author Soponar Cristina
	 * @inheritDoc
	 */
	public static function get_subscribed_events() {
		if ( ! rocket_has_constant( 'WP_SMUSH_VERSION' ) ) {
			return [
				'activate_wp-smushit/wp-smush.php' => [ 'maybe_deactivate_rocket_lazyload', 10 ],
			];
		}

		return [
			'update_option_wp-smush-settings'              => [ 'maybe_deactivate_rocket_lazyload', 11 ],
			'update_site_option_wp-smush-settings'         => [ 'maybe_deactivate_rocket_lazyload', 11 ],
			'update_option_wp-smush-lazy_load'             => [ 'maybe_deactivate_rocket_lazyload', 11 ],
			'update_site_option_wp-smush-lazy_load'        => [ 'maybe_deactivate_rocket_lazyload', 11 ],
			'rocket_maybe_disable_lazyload_helper'         => 'is_smush_lazyload_active',
			'rocket_maybe_disable_iframes_lazyload_helper' => 'is_smush_iframes_lazyload_active',
		];
	}

	/**
	 * Constructor.
	 *
	 * @since 3.5.5
	 *
	 * @param Options      $options_api WP Options API instance.
	 * @param Options_Data $options     WP Rocket Options instance.
	 */
	public function __construct( Options $options_api, Options_Data $options ) {
		$this->options_api = $options_api;
		$this->options     = $options;
	}

	/**
	 * Disable WP Rocket lazyload when activating WP Smush and values are already in the database.
	 *
	 * @since  3.4.2
	 * @author Soponar Cristina
	 */
	public function maybe_deactivate_rocket_lazyload() {
		$enabled = $this->is_smush_lazyload_enabled();
		$updated = false;

		if ( $enabled['images'] && $this->options->get( 'lazyload' ) ) {
			$this->options->set( 'lazyload', 0 );
			$updated = true;
		}

		if ( $enabled['iframes'] && $this->options->get( 'lazyload_iframes' ) ) {
			$this->options->set( 'lazyload_iframes', 0 );
			$updated = true;
		}

		if ( ! $updated ) {
			return;
		}

		$this->options_api->set( 'settings', $this->options->get_options() );
	}

	/**
	 * Add "Smush" to the provided array if WP Smush lazyload is enabled for images.
	 *
	 * @since  3.4.2
	 * @author Soponar Cristina
	 *
	 * @param  array $disable_images_lazyload Array with plugins which disable lazyload functionality.
	 * @return array                          A list of plugin names.
	 */
	public function is_smush_lazyload_active( array $disable_images_lazyload ) {
		$enabled = $this->is_smush_lazyload_enabled();

		if ( $enabled['images'] ) {
			$disable_images_lazyload[] = __( 'Smush', 'rocket' );
		}

		return $disable_images_lazyload;
	}

	/**
	 * Add "Smush" to the provided array if WP Smush lazyload is enabled for iframes.
	 *
	 * @since 3.5.5
	 *
	 * @param  array $disable_iframes_lazyload Array with plugins which disable lazyload functionality.
	 * @return array                           A list of plugin names.
	 */
	public function is_smush_iframes_lazyload_active( $disable_iframes_lazyload ) {
		$enabled = $this->is_smush_lazyload_enabled();

		if ( $enabled['iframes'] ) {
			$disable_iframes_lazyload[] = __( 'Smush', 'rocket' );
		}

		return $disable_iframes_lazyload;
	}

	/**
	 * Tell if Smush’s lazyload is enabled for each type of content.
	 *
	 * @since 3.5.5
	 *
	 * @return array {
	 *     @var bool $images  True when lazyload is enabled for images. False otherwise.
	 *     @var bool $iframes True when lazyload is enabled for iframes. False otherwise.
	 * }
	 */
	private function is_smush_lazyload_enabled() {
		$enabled = [
			'images'  => false,
			'iframes' => false,
		];

		if ( ! class_exists( '\Smush\Core\Settings' ) ) {
			return $enabled;
		}

		if ( ! method_exists( '\Smush\Core\Settings', 'get_instance' ) ) {
			return $enabled;
		}

		$smush_settings = Settings::get_instance();

		if ( ! method_exists( $smush_settings, 'get' ) || ! method_exists( $smush_settings, 'get_setting' ) ) {
			return $enabled;
		}

		if ( ! $smush_settings->get( 'lazy_load' ) ) {
			return $enabled;
		}

		$formats = $smush_settings->get_setting( 'wp-smush-lazy_load' );
		$formats = ! empty( $formats['format'] ) && is_array( $formats['format'] ) ? array_filter( $formats['format'] ) : [];

		$image_formats = array_intersect_key(
			$formats,
			// Allowlist image formats.
			[
				'jpeg' => false,
				'png'  => false,
				'gif'  => false,
				'svg'  => false,
			]
		);

		if ( ! empty( $image_formats ) ) {
			// One or several image formats are enabled in Smush.
			$enabled['images'] = true;
		}

		if ( ! empty( $formats['iframe'] ) ) {
			// Iframe is enabled in Smush.
			$enabled['iframes'] = true;
		}

		return $enabled;
	}
}

Spamworldpro Mini