HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/insiders/wp-load/wp-content/plugins/internal-links/helper/loader.php
<?php
namespace ILJ\Helper;

/**
 * Loader
 *
 * Class for registering and enqueuing scripts.
 *
 * @package ILJ\Helper
 * @since   2.23.6
 */
final class Loader {

	/**
	 * Boolean to determine whether we need to use minified script or not.
	 *
	 * @var bool
	 */
	public static $use_minified_resources = null;


	/**
	 * This function acts as proxy for `wp_enqueue_script`, This automatically enqueues the dependencies
	 * from *.asset.php file if $src is provided.
	 *
	 * @param string $handle The script handle.
	 * @param string $src    The source file url.
	 * @param array  $deps   The array of dependencies.
	 * @param string $ver    The script version.
	 * @param array  $args   Additional arguments.
	 * @return void
	 */
	public static function enqueue_script($handle, $src = '', $deps = array(), $ver = false, $args = array()) {
		self::proxy_wp_script_call($handle, $src, $deps, $ver, $args, 'wp_enqueue_script');
	}

	/**
	 * This function acts as proxy for 'wp_register_script', This automatically enqueues the dependencies
	 * from *.asset.php file if $src is provided.
	 *
	 * @param string $handle The script handle.
	 * @param string $src    The source file url.
	 * @param array  $deps   The array of dependencies.
	 * @param string $ver    The script version.
	 * @param array  $args   Additional arguments.
	 * @return void
	 */
	public static function register_script($handle, $src = '', $deps = array(), $ver = false, $args = array()) {
		self::proxy_wp_script_call($handle, $src, $deps, $ver, $args, 'wp_register_script');
	}

	/**
	 * Boolean to determine if we need to use minified resources in styles and scripts.
	 *
	 * @return bool
	 */
	private static function should_use_minified_resources() {
		if (null === self::$use_minified_resources) {
			self::$use_minified_resources = !defined('SCRIPT_DEBUG') || !SCRIPT_DEBUG;
		}
		return self::$use_minified_resources;
	}

	/**
	 * This function acts as proxy for `wp_enqueue_style`, this will
	 *
	 * @param string $handle The style handle.
	 * @param string $src    The source file url.
	 * @param array  $deps   The array of dependencies.
	 * @param string $ver    The style version.
	 * @param array  $media  The media for which this stylesheet has been defined.
	 * @return void
	 */
	public static function enqueue_style($handle, $src = '', $deps = array(), $ver = false, $media = 'all') {
		if (!$src || 0 !== strpos($src, ILJ_URL)) {
			wp_enqueue_style($handle, $src, $deps, $ver, $media);
			return;
		}

		if (self::should_use_minified_resources()) {
			$minified_css_suffix = '.min.css';
			// check if style ends with min.css, if its already ending with .min.css, do nothing.
			$src = substr($src, -strlen($minified_css_suffix)) === $minified_css_suffix ? $src : preg_replace('/\.css$/', $minified_css_suffix, $src);
		}
		wp_enqueue_style($handle, $src, $deps, $ver, $media);
	}

	/**
	 * This function acts as proxy for `wp_enqueue_script` and 'wp_register_script', This automatically enqueues the dependencies
	 * from *.asset.php file if $src is provided.
	 *
	 * @param string   $handle   The script handle.
	 * @param string   $src      The source file url.
	 * @param array    $deps     The array of dependencies.
	 * @param string   $ver      The script version.
	 * @param array    $args     Additional arguments.
	 * @param callable $callable The function which needs to be invoked.
	 * @return void
	 */
	private static function proxy_wp_script_call($handle, $src = '', $deps = array(), $ver = false, $args = array(), $callable = 'wp_enqueue_script') {

		// Bail out If source not provided or the dependencies don't start with ILJ_URL.
		if (!$src || 0 !== strpos($src, ILJ_URL, 0)) {
			call_user_func($callable, $handle, $src, $deps, $ver, $args);
			return;
		}

		$should_use_minified_resources = self::should_use_minified_resources();

		if ($should_use_minified_resources) {
			$minified_js_suffix = '.min.js';
			// check if style ends with min.js, if its already ending with .min.js, do nothing.
			$src = substr($src, -strlen($minified_js_suffix)) === $minified_js_suffix ? $src : preg_replace('/\.js$/', $minified_js_suffix, $src);
		}


		$assets_path = rtrim(str_replace(ILJ_URL, ILJ_PATH, $src), '.js') . '.asset.php';
		// Merge manual dependencies with automatically extracted dependencies.
		if (file_exists($assets_path)) {
			$assets = include $assets_path;
			if ($assets && is_array($assets)) {
				$deps = array_key_exists('dependencies', $assets) ? array_unique(array_merge($deps, $assets['dependencies'])) : $deps;
				// Use version from *.asset.php if script debug is enabled.
				$ver = $should_use_minified_resources && array_key_exists('version', $assets) ? $assets['version'] : $ver;
			}
		}

		call_user_func($callable, $handle, $src, $deps, $ver, $args);
	}
}