Server IP : 66.29.132.124 / Your IP : 18.191.68.112 Web Server : LiteSpeed System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : wavevlvu ( 1524) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/wavevlvu/misswavenigeria.com/wp-content/plugins/event-tickets/common/src/Tribe/ |
Upload File : |
<?php use TEC\Common\StellarWP\Assets\Asset; use TEC\Common\StellarWP\Assets\Assets; use Tribe__Utils__Array as Arr; /** * Class used to register and enqueue assets across our plugins. * * @since 4.3 */ class Tribe__Assets { /** * Static Singleton Factory Method. * * @since 4.3 * * @return self */ public static function instance() { return tribe( 'assets' ); } /** * Register the Methods in the correct places. * * @since 4.3 * @since 5.3.0 Emptied of all hooks in favor of the stellarwp/assets library. */ public function __construct() { } /** * Hooks the filters used to register the assets. * * @since 5.3.0 * * @return void */ public function hook(): void { add_filter( 'stellarwp/assets/tec/enqueue', [ $this, 'proxy_enqueue_filter' ], 10, 2 ); } /** * Proxies the generic stellarwp/assets/enqueue filter to apply the TEC ones. * * @since 5.3.0 * * @param bool $enqueue If we should enqueue or not a given asset. * @param Asset $asset Which asset we are dealing with. * * @return mixed|null */ public function proxy_enqueue_filter( $enqueue, $asset ) { /** * Allows developers to hook-in and prevent an asset from being loaded. * * @since 4.3 * @since 5.3.0 Moved here from the `Tribe__Assets` class. * * @param bool $enqueue If we should enqueue or not a given asset. * @param object $asset Which asset we are dealing with. */ $enqueue = apply_filters( 'tribe_asset_enqueue', $enqueue, $asset ); /** * Allows developers to hook-in and prevent an asset from being loaded. * * @since 4.3 * @since 5.3.0 Moved here from the `Tribe__Assets` class. * * @param bool $enqueue If we should enqueue or not a given asset. * @param object $asset Which asset we are dealing with. */ return apply_filters( "tribe_asset_enqueue_{$asset->get_slug()}", $enqueue, $asset ); } /** * Depending on how certain scripts are loaded and how much cross-compatibility is required we need to be able to * create noConflict backups and restore other scripts, which normally need to be printed directly on the scripts. * * @since 5.0.0 * * @param string $tag Tag we are filtering. * @param string $handle Which is the ID/Handle of the tag we are about to print. * * @return string Script tag with the before and after strings attached to it. * * @deprecated 5.3.0 */ public function filter_print_before_after_script( $tag, $handle ): string { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed _deprecated_function( __METHOD__, '5.3.0', '' ); return ''; } /** * Handles adding localization data, when attached to `script_loader_tag` which allows dependencies to load in their * localization data as well. * * @since 4.13.0 * * @param string $tag Tag we are filtering. * @param string $handle Which is the ID/Handle of the tag we are about to print. * * @return string Script tag with the localization variable HTML attached to it. * * @deprecated 5.3.0 */ public function filter_add_localization_data( $tag, $handle ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed _deprecated_function( __METHOD__, '5.3.0', '' ); return ''; } /** * Filters the Script tags to attach Async and/or Defer based on the rules we set in our Asset class. * * @since 4.13.0 * * @param string $tag Tag we are filtering. * @param string $handle Which is the ID/Handle of the tag we are about to print. * * @return string Script tag with the defer and/or async attached. * * @deprecated 5.3.0 */ public function filter_tag_async_defer( $tag, $handle ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed _deprecated_function( __METHOD__, '5.3.0', '' ); return ''; } /** * Filters the Script tags to attach type=module based on the rules we set in our Asset class. * * @since 4.14.14 * * @param string $tag Tag we are filtering. * @param string $handle Which is the ID/Handle of the tag we are about to print. * * @return string Script tag with the type=module * * @deprecated 5.3.0 */ public function filter_modify_to_module( $tag, $handle ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed _deprecated_function( __METHOD__, '5.3.0', '' ); return ''; } /** * Register the Assets on the correct hooks. * * @since 4.3 * @param array|object|null $assets Array of asset objects, single asset object, or null. * * @return void * * @deprecated 5.3.0 */ public function register_in_wp( $assets = null ) { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found _deprecated_function( __METHOD__, '5.3.0', '' ); } /** * Enqueues registered assets based on their groups. * * @since 4.7 * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @uses TEC\Common\StellarWP\Assets\Assets::enqueue_group() * * @param string|array $groups Which groups will be enqueued. * @param bool $forcibly_enqueue Whether to ignore conditional requirements when enqueuing. */ public function enqueue_group( $groups, $forcibly_enqueue = true ) { Assets::instance()->enqueue_group( $groups, $forcibly_enqueue ); } /** * Enqueues registered assets. * * This method is called on whichever action (if any) was declared during registration. * * It can also be called directly with a list of asset slugs to forcibly enqueue, which may be * useful where an asset is required in a situation not anticipated when it was originally * registered. * * @since 4.3 * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @uses TEC\Common\StellarWP\Assets\Assets::enqueue() * * @param string|array $assets Which assets to enqueue. * @param bool $forcibly_enqueue Whether to ignore conditional requirements when enqueuing. */ public function enqueue( $assets = [], $forcibly_enqueue = true ) { Assets::instance()->enqueue( $assets, $forcibly_enqueue ); } /** * Returns the path to a minified version of a js or css file, if it exists. * If the file does not exist, returns false. * * @since 4.3 * @since 4.5.10 Removed ability to pass a filepath as $url * * @param string $url The absolute URL to the un-minified file. * * @return string|false The url to the minified version or false, if file not found. */ public static function maybe_get_min_file( $url ) { static $wpmu_plugin_url; static $wp_plugin_url; static $wp_content_url; static $plugins_url; static $base_dirs; $urls = []; if ( ! isset( $wpmu_plugin_url ) ) { $wpmu_plugin_url = set_url_scheme( WPMU_PLUGIN_URL ); } if ( ! isset( $wp_plugin_url ) ) { $wp_plugin_url = set_url_scheme( WP_PLUGIN_URL ); } if ( ! isset( $wp_content_url ) ) { $wp_content_url = set_url_scheme( WP_CONTENT_URL ); } if ( ! isset( $plugins_url ) ) { $plugins_url = plugins_url(); } if ( ! isset( $base_dirs ) ) { $base_dirs[ WPMU_PLUGIN_DIR ] = wp_normalize_path( WPMU_PLUGIN_DIR ); $base_dirs[ WP_PLUGIN_DIR ] = wp_normalize_path( WP_PLUGIN_DIR ); $base_dirs[ WP_CONTENT_DIR ] = wp_normalize_path( WP_CONTENT_DIR ); } if ( 0 === strpos( $url, $wpmu_plugin_url ) ) { // URL inside WPMU plugin dir. $base_dir = $base_dirs[ WPMU_PLUGIN_DIR ]; $base_url = $wpmu_plugin_url; } elseif ( 0 === strpos( $url, $wp_plugin_url ) ) { // URL inside WP plugin dir. $base_dir = $base_dirs[ WP_PLUGIN_DIR ]; $base_url = $wp_plugin_url; } elseif ( 0 === strpos( $url, $wp_content_url ) ) { // URL inside WP content dir. $base_dir = $base_dirs[ WP_CONTENT_DIR ]; $base_url = $wp_content_url; } elseif ( 0 === strpos( $url, $plugins_url ) ) { $base_dir = $base_dirs[ WP_PLUGIN_DIR ]; $base_url = $plugins_url; } else { // Resource needs to be inside wp-content or a plugins dir. return false; } $script_debug = defined( 'SCRIPT_DEBUG' ) && tribe_is_truthy( SCRIPT_DEBUG ); // Strip the plugin URL and make this relative. $relative_location = str_replace( $base_url, '', $url ); if ( $script_debug ) { // Add the actual url after having the min file added. $urls[] = $relative_location; } // If needed add the Min Files. if ( substr( $relative_location, -3, 3 ) === '.js' ) { $urls[] = substr_replace( $relative_location, '.min', - 3, 0 ); } elseif ( substr( $relative_location, -4, 4 ) === '.css' ) { $urls[] = substr_replace( $relative_location, '.min', - 4, 0 ); } if ( ! $script_debug ) { // Add the actual url after having the min file added. $urls[] = $relative_location; } // Check for all Urls added to the array. foreach ( $urls as $partial_path ) { $file_path = wp_normalize_path( $base_dir . $partial_path ); $file_url = $base_url . $partial_path; if ( file_exists( $file_path ) ) { return $file_url; } } // If we don't have any real file return false. return false; } /** * Register an Asset and attach a callback to the required action to display it correctly. * * @since 4.3 * * @param object $origin The main object for the plugin you are enqueueing the asset for. * @param string $slug Slug to save the asset - passes through `sanitize_title_with_dashes()`. * @param string $file The asset file to load (CSS or JS), including non-minified file extension. * @param array $deps The list of dependencies or callable function that will return a list of dependencies. * @param string|array|null $action The WordPress action(s) to enqueue on, such as `wp_enqueue_scripts`, * `admin_enqueue_scripts`, or `login_enqueue_scripts`. * @param string|array $arguments { * Optional. Array or string of parameters for this asset. * * @type array|string|null $action The WordPress action(s) this asset will be enqueued on. * @type int $priority Priority in which this asset will be loaded on the WordPress action. * @type string $file The relative path to the File that will be enqueued, uses the $origin to get the full path. * @type string $type Asset Type, `js` or `css`. * @type array $deps An array of other asset as dependencies. * @type string $version Version number, used for cache expiring. * @type string $media Used only for CSS, when to load the file. * @type bool $in_footer A boolean determining if the javascript should be loaded on the footer. * @type array|object $localize { * Variables needed on the JavaScript side. * * @type string $name Name of the JS variable. * @type string|array $data Contents of the JS variable. * } * @type callable[] $conditionals An callable method or an array of them, that will determine if the asset is loaded or not. * } * * @return object|false The registered object or false on error. */ public function register( $origin, $slug, $file, $deps = [], $action = null, $arguments = [] ) { // Origin needs to be a class with a `instance` method and a Version constant. if ( is_string( $origin ) && class_exists( $origin, false ) && defined( $origin . '::VERSION' ) && method_exists( $origin, 'instance' ) ) { $origin = call_user_func( [ $origin, 'instance' ] ); } if ( is_object( $origin ) ) { $origin_name = get_class( $origin ); if ( ! defined( $origin_name . '::VERSION' ) ) { // If we have an Object, and we don't have instance or version. return false; } } else { return false; } // Infer the type from the file extension, if not passed. $type = empty( $arguments['type'] ) ? substr( $file, strrpos( $file, '.' ) + 1 ) : $arguments['type']; // Work out the root path from the origin. $root_path = trailingslashit( ! empty( $origin->plugin_path ) ? $origin->plugin_path : $origin->pluginPath ); // phpcs:ignore WordPress.NamingConventions.ValidVariableName.UsedPropertyNotSnakeCase // Follow symlinks. $root_path = str_replace( trailingslashit( dirname( dirname( dirname( dirname( __DIR__ ) ) ) ) ), trailingslashit( WP_PLUGIN_DIR ), $root_path ); // Fetches the version on the Origin Version constant if not passed. $version = $arguments['version'] ?? constant( $origin_name . '::VERSION' ); /** * Filter to change version number on assets. * * @since 4.3 * @since 5.3.0 The second filter argument is now deprecated; added the slug as a third argument. * * @param string $version The version number. * @param null $deprecated Used to be the asset object, it will now be always null. * @param string $slug The slug of the asset. */ $version = apply_filters( 'tribe_asset_version', $version, null, $slug ); $asset = Asset::add( $slug, $file, $version, $root_path ); if ( ! empty( $action ) ) { foreach ( (array) $action as $enqueue_on ) { $asset->enqueue_on( $enqueue_on, $arguments['priority'] ?? null ); } } $asset->set_type( $type ); if ( isset( $arguments['media'] ) ) { $asset->set_media( $arguments['media'] ); } if ( isset( $arguments['conditionals'] ) ) { if ( is_callable( $arguments['conditionals'] ) ) { // One array argument is a callable, so call it. $asset->set_condition( $arguments['conditionals'] ); } else { // Build a condition closure out of a list of conditionals. $conditionals = (array) $arguments['conditionals']; // Pluck the operator from the conditionals. $operator = Arr::get( $conditionals, 'operator', 'OR' ); // Keep the callables. $conditional_callables = array_values( array_filter( $conditionals, 'is_callable' ) ); if ( $operator === 'OR' ) { // Build a Closure condition that will return true if any of the callables return true. $asset->set_condition( function () use ( $conditional_callables ) { foreach ( $conditional_callables as $condition ) { if ( $condition() ) { return true; } } return false; } ); } else { // Build a Closure condition that will return true if all of the callables return true. $asset->set_condition( function () use ( $conditional_callables ) { foreach ( $conditional_callables as $condition ) { if ( ! $condition() ) { return false; } } return true; } ); } } } if ( isset( $deps ) ) { if ( is_callable( $deps ) ) { $asset->set_dependencies( $deps ); } else { foreach ( (array) $deps as $dependency ) { $asset->add_dependency( $dependency ); } } } if ( isset( $arguments['groups'] ) ) { foreach ( (array) $arguments['groups'] as $group ) { $asset->add_to_group( $group ); } } if ( isset( $arguments['print_before'] ) ) { $asset->print_before( $arguments['print_before'] ); } if ( isset( $arguments['print_after'] ) ) { $asset->print_after( $arguments['print_after'] ); } if ( ! empty( $arguments['localize'] ) && ( is_array( $arguments['localize'] ) || is_object( $arguments['localize'] ) ) ) { // Normalize to an array. $localize = (array) $arguments['localize']; if ( isset( $localize['name'], $localize['data'] ) ) { // Single instance of localize. $localize = [ $localize ]; } else { // Normalize to an array of valid arrays. $localize = array_values( array_filter( array_map( static fn( $l ) => (array) $l, $localize ), static fn( array $l ) => isset( $l['name'], $l['data'] ) ) ); } /** @var array<array{name: string, data: array|callable}> $localize */ foreach ( $localize as $l ) { $asset->add_localize_script( $l['name'], $l['data'] ); } } if ( isset( $arguments['translations'], $arguments['translations']['domain'], $arguments['translations']['path'] ) ) { $domain = $arguments['translations']['domain']; $path = $arguments['translations']['path']; $asset->call_after_enqueue( fn() => wp_set_script_translations( $slug, $domain, $path ) ); } if ( isset( $arguments['after_enqueue'] ) ) { $asset->call_after_enqueue( $arguments['after_enqueue'] ); } if ( isset( $arguments['in_footer'] ) ) { if ( $arguments['in_footer'] ) { $asset->in_footer(); } else { $asset->in_header(); } } if ( ! empty( $arguments['module'] ) ) { $asset->set_as_module(); } if ( ! empty( $arguments['defer'] ) ) { $asset->set_as_deferred(); } if ( ! empty( $arguments['async'] ) ) { $asset->set_as_async(); } if ( ! empty( $arguments['print'] ) ) { $asset->print(); } $asset->register(); return $asset; } /** * Parse the localize argument for a given asset object. * * @since 4.9.12 * * @param stdClass $asset Argument that set that asset. * * @return stdClass * * @deprecated 5.3.0 */ public function parse_argument_localize( stdClass $asset ) { _deprecated_function( __METHOD__, '5.3.0', '' ); return $asset; } /** * Removes an Asset from been registered and enqueue. * * @since 4.3 * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @param string $slug Slug of the Asset. * * @return bool */ public function remove( $slug ) { return Assets::instance()->remove( $slug ); } /** * Get the Asset Object configuration. * * @since 4.3 * @since 4.11.0 Added $sort param. * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @param string|array $slug Slug of the Asset. * @param boolean $sort If we should do any sorting before returning. * * @return array|object|null Array of asset objects, single asset object, or null if looking for a single asset but * it was not in the array of objects. */ public function get( $slug = null, $sort = true ) { return Assets::instance()->get( $slug, $sort ); } /** * Checks if an Asset exists. * * @param string|array $slug Slug of the Asset. * * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @return bool */ public function exists( $slug ) { return Assets::instance()->exists( $slug ); } /** * Prints the `script` (JS) and `link` (CSS) HTML tags associated with one or more assets groups. * * The method will force the scripts and styles to print overriding their registration and conditional. * * @since 4.12.6 * @since 5.3.0 Refactored to use the stellarwp/assets library. * * @param string|array $group Which group(s) should be enqueued. * @param bool $echo Whether to print the group(s) tag(s) to the page or not; default to `true` to * print the HTML `script` (JS) and `link` (CSS) tags to the page. * * @return string The `script` and `link` HTML tags produced for the group(s). */ public function print_group( $group, $echo = true ) { Assets::instance()->print_group( $group, $echo ); } /** * Enqueue StellarWP fonts. * * @since 5.1.3 * * @return void */ public function enqueue_stellar_wp_fonts() { wp_enqueue_style( 'stellar-wp-inconsolata-font', 'https://fonts.googleapis.com/css2?family=Inconsolata&display=swap' ); } }