File: /var/www/itt.kaunokolegija.lt/wp-content/plugins/pdf-embedder/src/Helpers/Assets.php
<?php
namespace PDFEmbedder\Helpers;
/**
* Class Assets to help manage assets.
*
* @since 4.7.0
*/
class Assets {
/**
* Plugin version.
*
* @since 4.8.0
*
* @var string
*/
public static $base_ver = PDFEMB_VERSION;
/**
* Path to the main plugin file.
*
* @since 4.8.0
*
* @var string
*/
public static $base_file = PDFEMB_PLUGIN_FILE;
/**
* Path to the plugin directory.
*
* @since 4.8.0
*
* @var string
*/
public static $base_dir = PDFEMB_PLUGIN_DIR;
/**
* Based on the SCRIPT_DEBUG const add or not the `.min` to the file name.
* Usage: `Assets::min( 'file.js' );`.
*
* @since 4.7.0
*
* @param string $file Filename: alpine.js or tailwind.css, or jquery.plugin.js.
*/
public static function min( string $file ): string {
$chunks = explode( '.', $file );
$ext = (array) array_pop( $chunks );
$min = Check::is_script_debug() ? [] : [ 'min' ];
return implode( '.', array_merge( $chunks, $min, $ext ) );
}
/**
* Define the version of an asset: either the provided version, PDFEMB_VERSION if not provided, or time() when in SCRIPT_DEBUG mode.
*
* @since 4.7.0
*
* @param string $current Default value.
*/
public static function ver( string $current = '' ): string {
if ( empty( $current ) ) {
$current = static::$base_ver;
}
return defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? time() : $current;
}
/**
* Get the URL to a file by its name.
*
* @since 4.7.0
*
* @param string $file File name relative to /assets/ directory in the plugin.
* @param bool $minify Whether the file URL should lead to a minified file.
*/
public static function url( string $file, bool $minify = true ): string {
$file = trim( $file, '/\\' );
if ( $minify ) {
$file = self::min( $file );
}
return plugins_url( '/assets/' . $file, static::$base_file );
}
/**
* Get the content of the SVG file.
*
* @since 4.7.0
*
* @param string $file SVG file content to retrieve.
*/
public static function svg( string $file ): string {
if ( ! str_ends_with( $file, '.svg' ) ) {
return '';
}
$file = wp_normalize_path( trim( $file ) );
$match_count = 1;
// Replace the ../ usage as many times as it may need to be replaced.
while ( $match_count ) {
$file = str_replace( '../', '', $file, $match_count );
}
$path = plugin_dir_path( static::$base_file ) . 'assets/' . ltrim( $file, '/\\' );
if ( is_readable( $path ) ) {
// phpcs:ignore WordPress.WP.AlternativeFunctions.file_get_contents_file_get_contents
return (string) file_get_contents( $path );
}
return '';
}
}