HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vm8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: afleverb (1000)
PHP: 7.4.33
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,pcntl_unshare,
Upload Files
File: //var/www/drakkar_site/wp-content/plugins/optimole-wp/inc/compatibilities/envira.php
<?php

use Optimole\Sdk\Resource\ImageProperty\ResizeTypeProperty;
use Optimole\Sdk\ValueObject\Position;

/**
 * Class Optml_shortcode_ultimate.
 *
 * @reason The gallery output contains a different src attribute used for lazyload
 * which prevented optimole to parse the tag.
 */
class Optml_envira extends Optml_compatibility {

	/**
	 * Should we load the integration logic.
	 *
	 * @return bool Should we load.
	 */
	public function should_load() {
		include_once ABSPATH . 'wp-admin/includes/plugin.php';

		return ( is_plugin_active( 'envira-gallery-lite/envira-gallery-lite.php' ) || is_plugin_active( 'envira-gallery/envira-gallery.php' ) );
	}

	/**
	 * Register integration details.
	 */
	public function register() {
		add_filter( 'optml_possible_lazyload_flags', [ $this, 'add_lazyflag' ], 10 );
		add_filter( 'optml_parse_resize_from_tag', [ $this, 'check_resize_tag' ], 10, 2 );
		add_filter( 'envira_gallery_image_src', [ $this, 'revert_src' ], 10 );
	}

	/**
	 * Revert the optimole url to the original state in
	 * order to allow to be parsed by the image tag parser.
	 *
	 * @param string $image Image url.
	 *
	 * @return string Original url.
	 */
	public function revert_src( $image ) {
		$pos = strpos( $image, '/http' );
		if ( $pos !== false ) {
			return ltrim( substr( $image, $pos ), '/' );
		}

		return $image;
	}

	/**
	 * Alter default resize for image tag parsing.
	 *
	 * @param array  $old_resize Old array, if any.
	 * @param string $tag Image tag.
	 *
	 * @return array Resize conf.
	 */
	public function check_resize_tag( $old_resize, $tag ) {
		if ( preg_match( '/(_c)\.(?:' . implode( '|', array_keys( Optml_Config::$image_extensions ) ) . ')/i', $tag, $match ) ) {
			return [
				'type'    => ResizeTypeProperty::FILL,
				'gravity' => Position::CENTER,
			];
		}

		return [];
	}

	/**
	 * Add envira lazyload flag.
	 *
	 * @param array $strings Old strings.
	 *
	 * @return array New flags.
	 */
	public function add_lazyflag( $strings = [] ) {

		$strings[] = 'envira-gallery-image';

		return $strings;
	}
}